Пример #1
0
def test_find_matches_multiple_occurances_one_line():
    text = "              amount=Money(20000, 'GBP'), amount_available=Money(20000, 'GBP')),), ],"
    formatter = FileFormatter("filename.txt")
    formatter.set_contents(text)
    matches = formatter.find_matches()
    assert len(matches) == 2
    assert matches[0] == TextMatch(args=["20000", " 'GBP'"], start=65, stop=76)
    assert matches[1] == TextMatch(args=["20000", " 'GBP'"], start=27, stop=38)
Пример #2
0
def test_matches_are_returned_in_reverse_order():
    actual = "Money(290, 'GBP')Money(823091, 'GBP')"
    formatter = FileFormatter('filename.txt')
    formatter.set_contents(actual)
    matches = formatter.find_matches()
    assert len(matches) == 2
    assert matches[0] == TextMatch(args=["823091", " 'GBP'"],
                                   start=23,
                                   stop=35)
    assert matches[1] == TextMatch(args=["290", " 'GBP'"], start=6, stop=15)
Пример #3
0
def reformatter(path):
    """Recursively get all python files and run reformatting."""

    if os.path.isfile(path) and path.endswith(EXTENSION):
        files = [path]
    elif os.path.isdir(path):
        files = get_files(path)
    else:
        raise RuntimeError(
            f"path provided is not a directory or file, or does not have the correct extension: {path}"
        )
    for file in files:
        formatter = FileFormatter(file)
        formatter.reformat()
Пример #4
0
def test_file_formatter():
    text = "              amount=Money(20000, 'GBP'), amount_available=Money(1900, 'GBP')),), ],"
    formatter = FileFormatter("filename.txt")
    formatter.set_contents(text)
    formatter.find_and_reformat_matches()
    expected = "              amount=Money(\"20000.00\", 'GBP'), amount_available=Money(\"1900.00\", 'GBP')),), ],"
    assert formatter.get_contents() == expected
Пример #5
0
def test_split_args_cannot_find_matching_bracket():
    formatter = FileFormatter('filename.txt')
    formatter.set_contents("Money(foo")
    with pytest.raises(RuntimeError) as exc_info:
        formatter.split_args(6)
    assert str(exc_info.value
               ) == "Unable to find closing bracket for start position '6'"
Пример #6
0
def test_split_args(actual, expected):
    formatter = FileFormatter('filename.txt')
    formatter.set_contents(actual)
    match = formatter.split_args(expected.start)
    assert len(match.args) == len(expected.args)
    assert match == expected
Пример #7
0
def test_find_matches(actual, expected):
    formatter = FileFormatter('filename.txt')
    formatter.set_contents(actual)
    matches = formatter.find_matches()
    assert len(matches) == 1
    assert matches[0] == expected
Пример #8
0
def test_reformat(mock_find_and_reformat_matches, mock_open):
    # Test mainly for coverage...
    formatter = FileFormatter('filename.txt')
    formatter.reformat()
    assert mock_open.call_count == 2
    assert mock_find_and_reformat_matches.call_count == 1
Пример #9
0
def test_no_changes_when_formatting_does_not_print_message(capsys):
    formatter = FileFormatter('filename.txt')
    formatter.set_contents('Money("10.02", "GBP")')
    formatter.find_and_reformat_matches()
    captured = capsys.readouterr()
    assert "filename.txt -- Reformatted:" not in captured.out
Пример #10
0
def test_reformatting_prints_message(capsys):
    formatter = FileFormatter('filename.txt')
    formatter.set_contents("Money(10.02, 'GBP')")
    formatter.find_and_reformat_matches()
    captured = capsys.readouterr()
    assert "filename.txt -- Reformatted: 1" in captured.out
Пример #11
0
def test_unable_to_format_prints_message(capsys):
    formatter = FileFormatter('filename.txt')
    formatter.set_contents("Money(max([1,2,3]))")
    formatter.find_and_reformat_matches()
    captured = capsys.readouterr()
    assert "filename.txt -- Reformatted: 0, Unable to reformat: 1" in captured.out