diff --git a/hgitaly/testing/context.py b/hgitaly/testing/context.py index 20ebc8401a38b0035d68f3fb53ce98dd4ea93dbe_aGdpdGFseS90ZXN0aW5nL2NvbnRleHQucHk=..b5c85c712b567a55ba08b592353910edbe23ecbb_aGdpdGFseS90ZXN0aW5nL2NvbnRleHQucHk= 100644 --- a/hgitaly/testing/context.py +++ b/hgitaly/testing/context.py @@ -51,3 +51,31 @@ set_details = fake_impl set_trailing_metadata = fake_impl time_remaining = fake_impl + + +class FakeContextAbort(RuntimeError): + pass + + +class FakeContextAborter(FakeServicerContext): + """A fake context that is good enough to test various `abort()` cases. + """ + + _trailing_metadata = _code = _details = None + + def set_trailing_metadata(self, metadata): + self._trailing_metadata = metadata + + def trailing_metadata(self): + return self._trailing_metadata + + def code(self): + return self._code + + def details(self): + return self._details + + def abort(self, code, details): + self._code = code + self._details = details + raise FakeContextAbort() diff --git a/hgitaly/tests/test_errors.py b/hgitaly/tests/test_errors.py index 20ebc8401a38b0035d68f3fb53ce98dd4ea93dbe_aGdpdGFseS90ZXN0cy90ZXN0X2Vycm9ycy5weQ==..b5c85c712b567a55ba08b592353910edbe23ecbb_aGdpdGFseS90ZXN0cy90ZXN0X2Vycm9ycy5weQ== 100644 --- a/hgitaly/tests/test_errors.py +++ b/hgitaly/tests/test_errors.py @@ -19,7 +19,9 @@ from ..errors import ( structured_abort ) -from ..testing.context import FakeServicerContext +from ..testing.context import ( + FakeContextAborter as FakeContext, +) StatusCode = grpc.StatusCode @@ -35,28 +37,6 @@ assert re.search('https://.*/-/issues/1234567', exc.details()) is not None -class FakeContext(FakeServicerContext): - - _trailing_metadata = _code = _details = None - - def set_trailing_metadata(self, metadata): - self._trailing_metadata = metadata - - def trailing_metadata(self): - return self._trailing_metadata - - def code(self): - return self._code - - def details(self): - return self._details - - def abort(self, code, details): - self._code = code - self._details = details - raise RuntimeError('abort-from-tests') - - def test_structured_abort(): context = FakeContext() diff --git a/hgitaly/tests/test_linguist.py b/hgitaly/tests/test_linguist.py index 20ebc8401a38b0035d68f3fb53ce98dd4ea93dbe_aGdpdGFseS90ZXN0cy90ZXN0X2xpbmd1aXN0LnB5..b5c85c712b567a55ba08b592353910edbe23ecbb_aGdpdGFseS90ZXN0cy90ZXN0X2xpbmd1aXN0LnB5 100644 --- a/hgitaly/tests/test_linguist.py +++ b/hgitaly/tests/test_linguist.py @@ -10,33 +10,10 @@ from ..linguist import ( language_stats, ) -from ..testing.context import FakeServicerContext - - -class FakeContextAbort(RuntimeError): - pass - - -class FakeContext(FakeServicerContext): - - _trailing_metadata = _code = _details = None - - def set_trailing_metadata(self, metadata): - self._trailing_metadata = metadata - - def trailing_metadata(self): - return self._trailing_metadata - - def code(self): - return self._code - - def details(self): - return self._details - - def abort(self, code, details): - self._code = code - self._details = details - raise FakeContextAbort() +from ..testing.context import ( + FakeContextAborter as FakeContext, + FakeContextAbort, +) def test_tokei_subprocesss_errors(tmpdir):