blob: 4580d5e32a201569ea83f71aee097cbd86ac33c3 [file] [log] [blame]
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]