|
1 | 1 | import unittest |
2 | 2 | from textwrap import dedent |
3 | 3 |
|
| 4 | +from rope.base.prefs import get_preferred_import_style, ImportStyle, Prefs, ImportPrefs |
| 5 | +from rope.base.prefs import DEFAULT_IMPORT_STYLE |
4 | 6 | from rope.refactor.importutils import ImportTools, add_import, importinfo |
5 | 7 | from ropetest import testutils |
6 | 8 |
|
7 | 9 |
|
| 10 | +class TestImportPrefs: |
| 11 | + def test_preferred_import_style_is_normal_import(self, project): |
| 12 | + pref = Prefs(imports=ImportPrefs(preferred_import_style="normal-import")) |
| 13 | + assert pref.imports.preferred_import_style == "normal-import" |
| 14 | + assert get_preferred_import_style(pref) == ImportStyle.normal_import |
| 15 | + |
| 16 | + def test_preferred_import_style_is_from_module(self, project): |
| 17 | + pref = Prefs(imports=ImportPrefs(preferred_import_style="from-module")) |
| 18 | + assert pref.imports.preferred_import_style == "from-module" |
| 19 | + assert get_preferred_import_style(pref) == ImportStyle.from_module |
| 20 | + |
| 21 | + def test_preferred_import_style_is_from_global(self, project): |
| 22 | + pref = Prefs(imports=ImportPrefs(preferred_import_style="from-global")) |
| 23 | + assert pref.imports.preferred_import_style == "from-global" |
| 24 | + assert get_preferred_import_style(pref) == ImportStyle.from_global |
| 25 | + |
| 26 | + def test_invalid_preferred_import_style_is_default(self, project): |
| 27 | + pref = Prefs(imports=ImportPrefs(preferred_import_style="invalid-value")) |
| 28 | + assert pref.imports.preferred_import_style == "invalid-value" |
| 29 | + assert get_preferred_import_style(pref) == DEFAULT_IMPORT_STYLE |
| 30 | + assert get_preferred_import_style(pref) == ImportStyle.normal_import |
| 31 | + |
| 32 | + def test_default_preferred_import_style_default_is_normal_imports(self, project): |
| 33 | + pref = Prefs() |
| 34 | + assert pref.imports.preferred_import_style == "default" |
| 35 | + assert get_preferred_import_style(pref) == ImportStyle.normal_import |
| 36 | + |
| 37 | + def test_default_preferred_import_style_default_and_prefer_module_from_imports(self, project): |
| 38 | + pref = Prefs( |
| 39 | + prefer_module_from_imports=True, |
| 40 | + imports=ImportPrefs(preferred_import_style="default"), |
| 41 | + ) |
| 42 | + assert get_preferred_import_style(pref) == ImportStyle.from_module |
| 43 | + |
| 44 | + def test_preferred_import_style_is_normal_import_takes_precedence_over_prefer_module_from_imports(self, project): |
| 45 | + pref = Prefs( |
| 46 | + prefer_module_from_imports=True, |
| 47 | + imports=ImportPrefs(preferred_import_style="normal_import"), |
| 48 | + ) |
| 49 | + assert get_preferred_import_style(pref) == ImportStyle.normal_import |
| 50 | + |
| 51 | + def test_preferred_import_style_is_from_module_takes_precedence_over_prefer_module_from_imports(self, project): |
| 52 | + pref = Prefs( |
| 53 | + prefer_module_from_imports=True, |
| 54 | + imports=ImportPrefs(preferred_import_style="from-module"), |
| 55 | + ) |
| 56 | + assert get_preferred_import_style(pref) == ImportStyle.from_module |
| 57 | + |
| 58 | + def test_preferred_import_style_is_from_global_takes_precedence_over_prefer_module_from_imports(self, project): |
| 59 | + pref = Prefs( |
| 60 | + prefer_module_from_imports=True, |
| 61 | + imports=ImportPrefs(preferred_import_style="from-global"), |
| 62 | + ) |
| 63 | + assert get_preferred_import_style(pref) == ImportStyle.from_global |
| 64 | + |
| 65 | + |
8 | 66 | class ImportUtilsTest(unittest.TestCase): |
9 | 67 | def setUp(self): |
10 | 68 | super().setUp() |
|
0 commit comments