()
| 107 | |
| 108 | |
| 109 | def make_refreshed_cli() -> tuple[Any, Any, Any, dict[str, Any]]: |
| 110 | cli = make_bare_mycli() |
| 111 | state: dict[str, Any] = { |
| 112 | 'entered_lock': {'count': 0}, |
| 113 | 'invalidated': [], |
| 114 | 'prefetch_started': [], |
| 115 | 'copy_calls': [], |
| 116 | } |
| 117 | old_completer = SimpleNamespace(dbmetadata={'old': object()}) |
| 118 | new_completer = SimpleNamespace( |
| 119 | dbname='current', |
| 120 | copy_other_schemas_from=lambda source, exclude: state['copy_calls'].append((source, exclude)), |
| 121 | ) |
| 122 | cli._completer_lock = cast( |
| 123 | Any, |
| 124 | ReusableLock(lambda: state['entered_lock'].__setitem__('count', state['entered_lock']['count'] + 1)), |
| 125 | ) |
| 126 | cli.completer = old_completer |
| 127 | cli.prompt_session = SimpleNamespace(app=SimpleNamespace(invalidate=lambda: state['invalidated'].append(True))) |
| 128 | cli.schema_prefetcher = SimpleNamespace(start_configured=lambda: state['prefetch_started'].append(True)) |
| 129 | return cli, old_completer, new_completer, state |
| 130 | |
| 131 | |
| 132 | def test_on_completions_refreshed_swaps_completer() -> None: |
no test coverage detected