diff options
author | Thomas Coldrick <othko97@gmail.com> | 2018-11-22 16:44:14 +0000 |
---|---|---|
committer | Thomas Coldrick <othko97@gmail.com> | 2018-12-20 11:41:29 +0000 |
commit | 9b5e21337660f7085093c8d745497bce90c7f59e (patch) | |
tree | 2c02bfb0508829addbd14c9da341fc584fa6d574 | |
parent | 67d8d0a1cdb4948158a4fe0387df44e960575993 (diff) | |
download | buildstream-9b5e21337660f7085093c8d745497bce90c7f59e.tar.gz |
bst fmt: Add tests for core functionality
-rw-r--r-- | tests/completions/completions.py | 1 | ||||
-rw-r--r-- | tests/integration/fmt.py | 75 | ||||
-rw-r--r-- | tests/integration/project/elements/fmt/bad-format.bst | 4 | ||||
-rw-r--r-- | tests/integration/project/elements/fmt/except.bst | 4 | ||||
-rw-r--r-- | tests/integration/project/elements/fmt/good-format.bst | 4 | ||||
-rw-r--r-- | tests/integration/project/elements/fmt/stack.bst | 5 |
6 files changed, 93 insertions, 0 deletions
diff --git a/tests/completions/completions.py b/tests/completions/completions.py index 372ed7840..303bc945b 100644 --- a/tests/completions/completions.py +++ b/tests/completions/completions.py @@ -9,6 +9,7 @@ MAIN_COMMANDS = [ 'artifact ', 'build ', 'checkout ', + 'fmt ', 'help ', 'init ', 'pull ', diff --git a/tests/integration/fmt.py b/tests/integration/fmt.py new file mode 100644 index 000000000..4580d5e32 --- /dev/null +++ b/tests/integration/fmt.py @@ -0,0 +1,75 @@ +import os +import pytest + +from tests.testutils import cli_integration as cli +from tests.testutils.site import IS_LINUX + + +DATA_DIR = os.path.join( + os.path.dirname(os.path.realpath(__file__)), + "project" +) + + +@pytest.mark.integration +@pytest.mark.datafiles(DATA_DIR) +def test_fmt_single(cli, tmpdir, datafiles): + project = os.path.join(datafiles.dirname, datafiles.basename) + element_name = 'fmt/bad-format.bst' + good_element = 'fmt/good-format.bst' + + with open(os.path.join(project, 'elements', good_element)) as element: + good = element.readlines() + + res = cli.run(project=project, args=['fmt', element_name]) + assert res.exit_code == 0 + + with open(os.path.join(project, 'elements', element_name)) as element: + final = element.readlines() + + # Have to test only the last line, rather than full file because of #767 + assert final[-1] == good[-1] + + +@pytest.mark.integration +@pytest.mark.datafiles(DATA_DIR) +def test_fmt_all(cli, tmpdir, datafiles): + project = os.path.join(datafiles.dirname, datafiles.basename) + check_elements = ['fmt/bad-format.bst', 'fmt/except.bst'] + target = 'fmt/stack.bst' + + initial_lines = [] + for e in check_elements: + with open(os.path.join(project, 'elements', e)) as element: + initial_lines.append(element.readlines()[-1]) + + with open(os.path.join(project, 'elements', 'fmt/good-format.bst')) as element: + expected = element.readlines()[-1] + + res = cli.run(project=project, args=['fmt', '--all', target]) + assert res.exit_code == 0 + + for i, _ in enumerate(initial_lines): + with open(os.path.join(project, 'elements', check_elements[i])) as element: + assert element.readlines()[-1] == expected + + +@pytest.mark.integration +@pytest.mark.datafiles(DATA_DIR) +def test_fmt_except(cli, tmpdir, datafiles): + project = os.path.join(datafiles.dirname, datafiles.basename) + bad_target = 'fmt/bad-format.bst' + except_target = 'fmt/except.bst' + target = 'fmt/stack.bst' + + with open(os.path.join(project, 'elements', 'fmt/good-format.bst')) as element: + formatted = element.readlines()[-1] + + res = cli.run(project=project, args=['fmt', '--all', target, '--except', except_target]) + assert res.exit_code == 0 + + with open(os.path.join(project, 'elements', except_target)) as element: + assert formatted != element.readlines()[-1] + + with open(os.path.join(project, 'elements', bad_target)) as element: + assert formatted == element.readlines()[-1] diff --git a/tests/integration/project/elements/fmt/bad-format.bst b/tests/integration/project/elements/fmt/bad-format.bst new file mode 100644 index 000000000..bbecc3a43 --- /dev/null +++ b/tests/integration/project/elements/fmt/bad-format.bst @@ -0,0 +1,4 @@ +kind: stack + +depends: + - filename: base.bst diff --git a/tests/integration/project/elements/fmt/except.bst b/tests/integration/project/elements/fmt/except.bst new file mode 100644 index 000000000..bbecc3a43 --- /dev/null +++ b/tests/integration/project/elements/fmt/except.bst @@ -0,0 +1,4 @@ +kind: stack + +depends: + - filename: base.bst diff --git a/tests/integration/project/elements/fmt/good-format.bst b/tests/integration/project/elements/fmt/good-format.bst new file mode 100644 index 000000000..44e2293a7 --- /dev/null +++ b/tests/integration/project/elements/fmt/good-format.bst @@ -0,0 +1,4 @@ +kind: stack + +depends: +- filename: base.bst diff --git a/tests/integration/project/elements/fmt/stack.bst b/tests/integration/project/elements/fmt/stack.bst new file mode 100644 index 000000000..0252d5417 --- /dev/null +++ b/tests/integration/project/elements/fmt/stack.bst @@ -0,0 +1,5 @@ +kind: stack +depends: +- filename: fmt/bad-format.bst +- filename: fmt/good-format.bst +- filename: fmt/except.bst |