def test_POST_user_valid(self): user_id = "@kermit:muppet" token = "kermits_access_token" device_id = "frogfone" request_data = json.dumps({ "username": "******", "password": "******", "device_id": device_id }) self.registration_handler.check_username = Mock(return_value=True) self.auth_result = (None, { "username": "******", "password": "******" }, None) self.registration_handler.register = Mock(return_value=(user_id, None)) self.auth_handler.get_access_token_for_user_id = Mock( return_value=token) self.device_handler.check_device_registered = Mock( return_value=device_id) request, channel = make_request(b"POST", self.url, request_data) request.render(self.resource) wait_until_result(self.clock, channel) det_data = { "user_id": user_id, "access_token": token, "home_server": self.hs.hostname, "device_id": device_id, } self.assertEquals(channel.result["code"], b"200", channel.result) self.assertDictContainsSubset(det_data, json.loads(channel.result["body"])) self.auth_handler.get_login_tuple_for_user_id( user_id, device_id=device_id, initial_device_display_name=None)
def test_get_filter_no_id(self): request, channel = make_request( b"GET", "/_matrix/client/r0/user/%s/filter/" % (self.USER_ID)) request.render(self.resource) wait_until_result(self.clock, channel) self.assertEqual(channel.result["code"], b"400")
def test_get_filter_non_existant(self): request, channel = make_request( b"GET", "/_matrix/client/r0/user/%s/filter/12382148321" % (self.USER_ID) ) request.render(self.resource) wait_until_result(self.clock, channel) self.assertEqual(channel.result["code"], b"400") self.assertEquals(channel.json_body["errcode"], Codes.NOT_FOUND)
def test_add_filter_for_other_user(self): request, channel = make_request( b"POST", b"/_matrix/client/r0/user/%s/filter" % (b"@watermelon:test"), self.EXAMPLE_FILTER_JSON, ) request.render(self.resource) wait_until_result(self.clock, channel) self.assertEqual(channel.result["code"], b"403") self.assertEquals(channel.json_body["errcode"], Codes.FORBIDDEN)
def test_get_filter(self): filter_id = self.filtering.add_user_filter( user_localpart="apple", user_filter=self.EXAMPLE_FILTER) self.clock.advance(1) filter_id = filter_id.result request, channel = make_request( b"GET", b"/_matrix/client/r0/user/%s/filter/%s" % (self.USER_ID, filter_id)) request.render(self.resource) wait_until_result(self.clock, channel) self.assertEqual(channel.result["code"], b"200") self.assertEquals(channel.json_body, self.EXAMPLE_FILTER)
def test_add_filter_non_local_user(self): _is_mine = self.hs.is_mine self.hs.is_mine = lambda target_user: False request, channel = make_request( b"POST", b"/_matrix/client/r0/user/%s/filter" % (self.USER_ID), self.EXAMPLE_FILTER_JSON, ) request.render(self.resource) wait_until_result(self.clock, channel) self.hs.is_mine = _is_mine self.assertEqual(channel.result["code"], b"403") self.assertEquals(channel.json_body["errcode"], Codes.FORBIDDEN)
def test_add_filter(self): request, channel = make_request( b"POST", b"/_matrix/client/r0/user/%s/filter" % (self.USER_ID), self.EXAMPLE_FILTER_JSON, ) request.render(self.resource) wait_until_result(self.clock, channel) self.assertEqual(channel.result["code"], b"200") self.assertEqual(channel.json_body, {"filter_id": "0"}) filter = self.store.get_user_filter(user_localpart="apple", filter_id=0) self.clock.advance(0) self.assertEquals(filter.result, self.EXAMPLE_FILTER)
def post_json(destination, path, data): self.assertEqual(destination, self.hs.hostname) self.assertEqual( path, "/_matrix/key/v2/query", ) channel = FakeChannel(self.site, self.reactor) req = SynapseRequest(channel) req.content = BytesIO(encode_canonical_json(data)) req.requestReceived( b"POST", path.encode("utf-8"), b"1.1", ) wait_until_result(self.reactor, req) self.assertEqual(channel.code, 200) resp = channel.json_body return resp
def test_POST_disabled_registration(self): self.hs.config.enable_registration = False request_data = json.dumps({"username": "******", "password": "******"}) self.registration_handler.check_username = Mock(return_value=True) self.auth_result = (None, { "username": "******", "password": "******" }, None) self.registration_handler.register = Mock(return_value=("@user:id", "t")) request, channel = make_request(b"POST", self.url, request_data) request.render(self.resource) wait_until_result(self.clock, channel) self.assertEquals(channel.result["code"], b"403", channel.result) self.assertEquals( json.loads(channel.result["body"])["error"], "Registration has been disabled", )