summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/crypto/test_keyring.py6
-rw-r--r--tests/handlers/test_oidc.py4
-rw-r--r--tests/http/test_matrixfederationclient.py2
-rw-r--r--tests/storage/test_appservice.py8
-rw-r--r--tests/test_server.py2
-rw-r--r--tests/unittest.py2
-rw-r--r--tests/util/caches/test_deferred_cache.py54
-rw-r--r--tests/util/caches/test_descriptors.py6
-rw-r--r--tests/util/test_async_helpers.py16
-rw-r--r--tests/util/test_linearizer.py2
-rw-r--r--tests/util/test_logcontext.py5
-rw-r--r--tests/util/test_ratelimitutils.py2
12 files changed, 59 insertions, 50 deletions
diff --git a/tests/crypto/test_keyring.py b/tests/crypto/test_keyring.py

index 1b9696748f..d6db5b6423 100644 --- a/tests/crypto/test_keyring.py +++ b/tests/crypto/test_keyring.py
@@ -130,7 +130,9 @@ class KeyringTestCase(unittest.HomeserverTestCase): pass self.assertFalse(res_deferreds[0].called) - res_deferreds[0].addBoth(self.check_context, None) + # type-ignore: Deferred.addBoth returns `self`; it doesn't need to be + # awaited as long as we use the await the deferred elsewhere + res_deferreds[0].addBoth(self.check_context, None) # type: ignore[unused-awaitable] await make_deferred_yieldable(res_deferreds[0]) @@ -166,7 +168,7 @@ class KeyringTestCase(unittest.HomeserverTestCase): ) ] ) - res_deferreds_2[0].addBoth(self.check_context, None) + res_deferreds_2[0].addBoth(self.check_context, None) # type: ignore[unused-awaitable] second_lookup_state[0] = 1 await make_deferred_yieldable(res_deferreds_2[0]) second_lookup_state[0] = 2 diff --git a/tests/handlers/test_oidc.py b/tests/handlers/test_oidc.py
index 951caaa6b3..bb52b3b1af 100644 --- a/tests/handlers/test_oidc.py +++ b/tests/handlers/test_oidc.py
@@ -12,7 +12,7 @@ # See the License for the specific language governing permissions and # limitations under the License. import os -from typing import Any, Awaitable, ContextManager, Dict, Optional, Tuple +from typing import Any, ContextManager, Dict, Optional, Tuple from unittest.mock import ANY, Mock, patch from urllib.parse import parse_qs, urlparse @@ -287,7 +287,7 @@ class OidcHandlerTestCase(HomeserverTestCase): """Provider metadatas are extensively validated.""" h = self.provider - def force_load_metadata() -> Awaitable[None]: + def force_load_metadata() -> "OpenIDProviderMetadata": async def force_load() -> "OpenIDProviderMetadata": return await h.load_metadata(force=True) diff --git a/tests/http/test_matrixfederationclient.py b/tests/http/test_matrixfederationclient.py
index fdd22a8e94..9373523dea 100644 --- a/tests/http/test_matrixfederationclient.py +++ b/tests/http/test_matrixfederationclient.py
@@ -460,7 +460,7 @@ class FederationClientTests(HomeserverTestCase): self.failureResultOf(d) def test_client_sends_body(self) -> None: - defer.ensureDeferred( + defer.ensureDeferred( # type: ignore[unused-awaitable] self.cl.post_json( "testserv:8008", "foo/bar", timeout=10000, data={"a": "b"} ) diff --git a/tests/storage/test_appservice.py b/tests/storage/test_appservice.py
index 5e1324a169..2b09700bfe 100644 --- a/tests/storage/test_appservice.py +++ b/tests/storage/test_appservice.py
@@ -151,7 +151,9 @@ class ApplicationServiceTransactionStoreTestCase(unittest.HomeserverTestCase): outfile.write(yaml.dump(as_yaml)) self.as_yaml_files.append(as_token) - def _set_state(self, id: str, state: ApplicationServiceState) -> defer.Deferred: + def _set_state( + self, id: str, state: ApplicationServiceState + ) -> "defer.Deferred[None]": return self.db_pool.runOperation( self.engine.convert_param_style( "INSERT INTO application_services_state(as_id, state) VALUES(?,?)" @@ -297,7 +299,9 @@ class ApplicationServiceTransactionStoreTestCase(unittest.HomeserverTestCase): service = Mock(id=self.as_list[0]["id"]) events = [Mock(event_id="e1"), Mock(event_id="e2")] txn_id = 5 - self._set_state(self.as_list[0]["id"], ApplicationServiceState.UP) + self.get_success( + self._set_state(self.as_list[0]["id"], ApplicationServiceState.UP) + ) self.get_success(self._insert_txn(service.id, txn_id, events)) self.get_success( self.store.complete_appservice_txn(txn_id=txn_id, service=service) diff --git a/tests/test_server.py b/tests/test_server.py
index d67d7722a4..27537758c4 100644 --- a/tests/test_server.py +++ b/tests/test_server.py
@@ -117,7 +117,7 @@ class JsonResourceTests(unittest.TestCase): def _callback(request: SynapseRequest, **kwargs: object) -> "Deferred[None]": d: "Deferred[None]" = Deferred() - d.addCallback(_throw) + d.addCallback(_throw) # type: ignore[unused-awaitable] self.reactor.callLater(0.5, d.callback, True) return make_deferred_yieldable(d) diff --git a/tests/unittest.py b/tests/unittest.py
index f9160faa1d..6625fe1688 100644 --- a/tests/unittest.py +++ b/tests/unittest.py
@@ -563,7 +563,7 @@ class HomeserverTestCase(TestCase): deferred: Deferred[TV] = ensureDeferred(d) # type: ignore[arg-type] results: list = [] - deferred.addBoth(results.append) + deferred.addBoth(results.append) # type: ignore[unused-awaitable] self.pump(by=by) diff --git a/tests/util/caches/test_deferred_cache.py b/tests/util/caches/test_deferred_cache.py
index f74d82b1dc..f19544d7a8 100644 --- a/tests/util/caches/test_deferred_cache.py +++ b/tests/util/caches/test_deferred_cache.py
@@ -26,7 +26,7 @@ class DeferredCacheTestCase(TestCase): def test_empty(self) -> None: cache: DeferredCache[str, int] = DeferredCache("test") with self.assertRaises(KeyError): - cache.get("foo") + cache.get("foo") # type: ignore[unused-awaitable] def test_hit(self) -> None: cache: DeferredCache[str, int] = DeferredCache("test") @@ -48,7 +48,7 @@ class DeferredCacheTestCase(TestCase): self.assertTrue(set_d.called) return r - get_d.addCallback(check1) + get_d.addCallback(check1) # type: ignore[unused-awaitable] # now fire off all the deferreds origin_d.callback(99) @@ -130,7 +130,7 @@ class DeferredCacheTestCase(TestCase): def test_get_immediate(self) -> None: cache: DeferredCache[str, int] = DeferredCache("test") d1: "defer.Deferred[int]" = defer.Deferred() - cache.set("key1", d1) + cache.set("key1", d1) # type: ignore[unused-awaitable] # get_immediate should return default v = cache.get_immediate("key1", 1) @@ -149,7 +149,7 @@ class DeferredCacheTestCase(TestCase): cache.invalidate(("foo",)) with self.assertRaises(KeyError): - cache.get(("foo",)) + cache.get(("foo",)) # type: ignore[unused-awaitable] def test_invalidate_all(self) -> None: cache: DeferredCache[str, str] = DeferredCache("testcache") @@ -161,10 +161,10 @@ class DeferredCacheTestCase(TestCase): # add a couple of pending entries d1: "defer.Deferred[str]" = defer.Deferred() - cache.set("key1", d1, partial(record_callback, 0)) + cache.set("key1", d1, partial(record_callback, 0)) # type: ignore[unused-awaitable] d2: "defer.Deferred[str]" = defer.Deferred() - cache.set("key2", d2, partial(record_callback, 1)) + cache.set("key2", d2, partial(record_callback, 1)) # type: ignore[unused-awaitable] # lookup should return pending deferreds self.assertFalse(cache.get("key1").called) @@ -181,9 +181,9 @@ class DeferredCacheTestCase(TestCase): # lookup should fail with self.assertRaises(KeyError): - cache.get("key1") + cache.get("key1") # type: ignore[unused-awaitable] with self.assertRaises(KeyError): - cache.get("key2") + cache.get("key2") # type: ignore[unused-awaitable] # both callbacks should have been callbacked self.assertTrue(callback_record[0], "Invalidation callback for key1 not called") @@ -192,7 +192,7 @@ class DeferredCacheTestCase(TestCase): # letting the other lookup complete should do nothing d1.callback("result1") with self.assertRaises(KeyError): - cache.get("key1", None) + cache.get("key1", None) # type: ignore[unused-awaitable] def test_eviction(self) -> None: cache: DeferredCache[int, str] = DeferredCache( @@ -204,10 +204,10 @@ class DeferredCacheTestCase(TestCase): cache.prefill(3, "three") # 1 will be evicted with self.assertRaises(KeyError): - cache.get(1) + cache.get(1) # type: ignore[unused-awaitable] - cache.get(2) - cache.get(3) + cache.get(2) # type: ignore[unused-awaitable] + cache.get(3) # type: ignore[unused-awaitable] def test_eviction_lru(self) -> None: cache: DeferredCache[int, str] = DeferredCache( @@ -218,15 +218,15 @@ class DeferredCacheTestCase(TestCase): cache.prefill(2, "two") # Now access 1 again, thus causing 2 to be least-recently used - cache.get(1) + cache.get(1) # type: ignore[unused-awaitable] cache.prefill(3, "three") with self.assertRaises(KeyError): - cache.get(2) + cache.get(2) # type: ignore[unused-awaitable] - cache.get(1) - cache.get(3) + cache.get(1) # type: ignore[unused-awaitable] + cache.get(3) # type: ignore[unused-awaitable] def test_eviction_iterable(self) -> None: cache: DeferredCache[int, List[str]] = DeferredCache( @@ -240,40 +240,40 @@ class DeferredCacheTestCase(TestCase): cache.prefill(2, ["three"]) # Now access 1 again, thus causing 2 to be least-recently used - cache.get(1) + cache.get(1) # type: ignore[unused-awaitable] # Now add an item to the cache, which evicts 2. cache.prefill(3, ["four"]) with self.assertRaises(KeyError): - cache.get(2) + cache.get(2) # type: ignore[unused-awaitable] # Ensure 1 & 3 are in the cache. - cache.get(1) - cache.get(3) + cache.get(1) # type: ignore[unused-awaitable] + cache.get(3) # type: ignore[unused-awaitable] # Now access 1 again, thus causing 3 to be least-recently used - cache.get(1) + cache.get(1) # type: ignore[unused-awaitable] # Now add an item with multiple elements to the cache cache.prefill(4, ["five", "six"]) # Both 1 and 3 are evicted since there's too many elements. with self.assertRaises(KeyError): - cache.get(1) + cache.get(1) # type: ignore[unused-awaitable] with self.assertRaises(KeyError): - cache.get(3) + cache.get(3) # type: ignore[unused-awaitable] # Now add another item to fill the cache again. cache.prefill(5, ["seven"]) # Now access 4, thus causing 5 to be least-recently used - cache.get(4) + cache.get(4) # type: ignore[unused-awaitable] # Add an empty item. cache.prefill(6, []) # 5 gets evicted and replaced since an empty element counts as an item. with self.assertRaises(KeyError): - cache.get(5) - cache.get(4) - cache.get(6) + cache.get(5) # type: ignore[unused-awaitable] + cache.get(4) # type: ignore[unused-awaitable] + cache.get(6) # type: ignore[unused-awaitable] diff --git a/tests/util/caches/test_descriptors.py b/tests/util/caches/test_descriptors.py
index 13f1edd533..1cc009aee5 100644 --- a/tests/util/caches/test_descriptors.py +++ b/tests/util/caches/test_descriptors.py
@@ -292,12 +292,14 @@ class DescriptorTestCase(unittest.TestCase): # set off a deferred which will do a cache lookup d1 = do_lookup() self.assertEqual(current_context(), SENTINEL_CONTEXT) - d1.addCallback(check_result) + # type-ignore: addCallback returns self, so as long as we await d1 (and d2) + # below, this error is a false positive. + d1.addCallback(check_result) # type: ignore[unused-awaitable] # and another d2 = do_lookup() self.assertEqual(current_context(), SENTINEL_CONTEXT) - d2.addCallback(check_result) + d2.addCallback(check_result) # type: ignore[unused-awaitable] # let the lookup complete complete_lookup.callback(None) diff --git a/tests/util/test_async_helpers.py b/tests/util/test_async_helpers.py
index 91cac9822a..7730c23e5a 100644 --- a/tests/util/test_async_helpers.py +++ b/tests/util/test_async_helpers.py
@@ -57,7 +57,7 @@ class ObservableDeferredTest(TestCase): self.assertFalse(observer2.called) return res - observer1.addBoth(check_called_first) + observer1.addBoth(check_called_first) # type: ignore[unused-awaitable] # store the results results: List[Optional[ObservableDeferred[int]]] = [None, None] @@ -68,8 +68,8 @@ class ObservableDeferredTest(TestCase): results[idx] = res return res - observer1.addCallback(check_val, 0) - observer2.addCallback(check_val, 1) + observer1.addCallback(check_val, 0) # type: ignore[unused-awaitable] + observer2.addCallback(check_val, 1) # type: ignore[unused-awaitable] origin_d.callback(123) self.assertEqual(results[0], 123, "observer 1 callback result") @@ -90,7 +90,7 @@ class ObservableDeferredTest(TestCase): self.assertFalse(observer2.called) return res - observer1.addBoth(check_called_first) + observer1.addBoth(check_called_first) # type: ignore[unused-awaitable] # store the results results: List[Optional[ObservableDeferred[str]]] = [None, None] @@ -99,8 +99,8 @@ class ObservableDeferredTest(TestCase): results[idx] = res return None - observer1.addErrback(check_val, 0) - observer2.addErrback(check_val, 1) + observer1.addErrback(check_val, 0) # type: ignore[unused-awaitable] + observer2.addErrback(check_val, 1) # type: ignore[unused-awaitable] try: raise Exception("gah!") @@ -208,11 +208,11 @@ class TimeoutDeferredTest(TestCase): return res original_deferred = blocking() - original_deferred.addErrback(errback, "orig") + original_deferred.addErrback(errback, "orig") # type: ignore[unused-awaitable] timing_out_d = timeout_deferred(original_deferred, 1.0, self.clock) self.assertNoResult(timing_out_d) self.assertIs(current_context(), SENTINEL_CONTEXT) - timing_out_d.addErrback(errback, "timingout") + timing_out_d.addErrback(errback, "timingout") # type: ignore[unused-awaitable] self.clock.pump((1.0,)) diff --git a/tests/util/test_linearizer.py b/tests/util/test_linearizer.py
index 47a1cfbdc1..c8f8f6bce4 100644 --- a/tests/util/test_linearizer.py +++ b/tests/util/test_linearizer.py
@@ -140,7 +140,7 @@ class LinearizerTestCase(unittest.TestCase): _, _, unblock = self._start_task(linearizer, key) for i in range(1, 100): - defer.ensureDeferred(func(i)) + defer.ensureDeferred(func(i)) # type: ignore[unused-awaitable] d = defer.ensureDeferred(func(1000)) unblock() diff --git a/tests/util/test_logcontext.py b/tests/util/test_logcontext.py
index d64c162e1d..39f1ddb900 100644 --- a/tests/util/test_logcontext.py +++ b/tests/util/test_logcontext.py
@@ -74,7 +74,8 @@ class LoggingContextTestCase(unittest.TestCase): callback_completed = True return res - d2.addCallback(cb) + # type-ignore: this doesn't create a new Deferred: allCallback returns self. + d2.addCallback(cb) # type: ignore[unused-awaitable] self._check_test_key("one") @@ -195,5 +196,5 @@ def _chained_deferred_function() -> defer.Deferred: reactor.callLater(0, d2.callback, res) return d2 - d.addCallback(cb) + d.addCallback(cb) # type: ignore[unused-awaitable] return d diff --git a/tests/util/test_ratelimitutils.py b/tests/util/test_ratelimitutils.py
index fe4961dcf3..045a51c0b0 100644 --- a/tests/util/test_ratelimitutils.py +++ b/tests/util/test_ratelimitutils.py
@@ -109,7 +109,7 @@ class FederationRateLimiterTestCase(TestCase): await d for _ in range(1, 100): - defer.ensureDeferred(task()) + defer.ensureDeferred(task()) # type: ignore[unused-awaitable] last_task = defer.ensureDeferred(task())