| 36 | |
| 37 | |
| 38 | def test_completion(): |
| 39 | completer = hy.completer.Completer( |
| 40 | { |
| 41 | "hy": None, |
| 42 | "simple_pythonic_var_name": None, |
| 43 | mangle("complicated->@#%!name"): types.SimpleNamespace( |
| 44 | **{mangle("another$^@#$name"): None} |
| 45 | ), |
| 46 | "hyx_XaXaXaX": types.SimpleNamespace(**{"hyx_XbXbX": None}), |
| 47 | } |
| 48 | ) |
| 49 | assert completer.complete("hy.", 0) is not None |
| 50 | for test in [ |
| 51 | ("simple_pyth", "simple-pythonic-var-name"), |
| 52 | ("compli", "complicated->@#%!name"), |
| 53 | ("complicated->@#", "complicated->@#%!name"), |
| 54 | ("complicated->@#%!name", "complicated->@#%!name"), |
| 55 | ("complicated->@#%!name.ano", "complicated->@#%!name.another$^@#$name"), |
| 56 | ("complicated->@#%!name.another$^@", "complicated->@#%!name.another$^@#$name"), |
| 57 | ("hyx_XaX", "hyx_XaXaXaX"), |
| 58 | ("hyx_XaXaXaX.hyx_Xb", "hyx_XaXaXaX.hyx_XbXbX"), |
| 59 | ]: |
| 60 | assert completer.complete(test[0], 0) == test[1] |