diff options
| author | Timothy Crosley <timothy.crosley@gmail.com> | 2021-06-20 19:17:16 -0700 |
|---|---|---|
| committer | Timothy Crosley <timothy.crosley@gmail.com> | 2021-06-20 19:17:16 -0700 |
| commit | a1a3aff44a16dca71b288f1a7cd19a039931ee2a (patch) | |
| tree | 340a664985309946bcb983b52cd68bfcce57a2d1 /tests | |
| parent | 37dcd467f3b521128ca1dcc87cd1608597b20ade (diff) | |
| download | isort-a1a3aff44a16dca71b288f1a7cd19a039931ee2a.tar.gz | |
Implemented #1732: Support for custom sort functions.
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/unit/test_exceptions.py | 9 | ||||
| -rw-r--r-- | tests/unit/test_isort.py | 19 | ||||
| -rw-r--r-- | tests/unit/test_ticketed_features.py | 42 |
3 files changed, 51 insertions, 19 deletions
diff --git a/tests/unit/test_exceptions.py b/tests/unit/test_exceptions.py index d9eae8bf..2cd17aa1 100644 --- a/tests/unit/test_exceptions.py +++ b/tests/unit/test_exceptions.py @@ -58,6 +58,15 @@ class TestProfileDoesNotExist(TestISortError): assert self.instance.profile == "profile" +class TestSortingFunctionDoesNotExist(TestISortError): + def setup_class(self): + self.instance = exceptions.SortingFunctionDoesNotExist("round", ["square", "peg"]) + + def test_variables(self): + assert self.instance.sort_order == "round" + assert self.instance.available_sort_orders == ["square", "peg"] + + class TestLiteralParsingFailure(TestISortError): def setup_class(self): self.instance = exceptions.LiteralParsingFailure("x = [", SyntaxError) diff --git a/tests/unit/test_isort.py b/tests/unit/test_isort.py index 9593c42c..0599925e 100644 --- a/tests/unit/test_isort.py +++ b/tests/unit/test_isort.py @@ -5236,22 +5236,3 @@ def test_find_imports_in_stream() -> None: test_input = NonSeekableTestStream("import m2\n" "import m1\n" "not_import = 7") identified_imports = list(map(str, api.find_imports_in_stream(test_input))) assert identified_imports == [":1 import m2", ":2 import m1"] - - -def test_sort_pythonic() -> None: - """ Test a plugged-in default python sort with packages/modules containing numbers. """ - test_input = ( - "from bob2.apples2 import aardvark as aardvark2\n" - "from bob.apples import aardvark \n" - "import module9\n" - "import module10\n" - "import module200\n" - ) - test_output = isort.code(test_input, sort_order="pythonic") - assert test_output == ( - "import module10\n" - "import module200\n" - "import module9\n" - "from bob.apples import aardvark\n" - "from bob2.apples2 import aardvark as aardvark2\n" - ) diff --git a/tests/unit/test_ticketed_features.py b/tests/unit/test_ticketed_features.py index a2970053..dde08be6 100644 --- a/tests/unit/test_ticketed_features.py +++ b/tests/unit/test_ticketed_features.py @@ -1179,3 +1179,45 @@ from __future__ import absolute_imports import os """ ) + + +def test_sort_configurable_sort_issue_1732() -> None: + """Test support for pluggable isort sort functions.""" + test_input = ( + "from bob2.apples2 import aardvark as aardvark2\n" + "from bob.apples import aardvark \n" + "import module9\n" + "import module10\n" + "import module200\n" + ) + assert isort.code(test_input, sort_order="native") == ( + "import module10\n" + "import module200\n" + "import module9\n" + "from bob.apples import aardvark\n" + "from bob2.apples2 import aardvark as aardvark2\n" + ) + assert ( + isort.code(test_input, sort_order="natural") + == isort.code(test_input) + == ( + "import module9\n" + "import module10\n" + "import module200\n" + "from bob2.apples2 import aardvark as aardvark2\n" + "from bob.apples import aardvark\n" + ) + ) + assert ( + isort.code(test_input, sort_order="natural_plus") + == isort.code(test_input) + == ( + "import module9\n" + "import module10\n" + "import module200\n" + "from bob2.apples2 import aardvark as aardvark2\n" + "from bob.apples import aardvark\n" + ) + ) + with pytest.raises(exceptions.SortingFunctionDoesNotExist): + isort.code(test_input, sort_order="round") |
