# -*- coding: utf-8 -*- # Copyright 2020 The Matrix.org Foundation C.I.C. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. from synapse.module_api import ModuleApi from tests.unittest import HomeserverTestCase class ModuleApiTestCase(HomeserverTestCase): def prepare(self, reactor, clock, homeserver): self.store = homeserver.get_datastore() self.module_api = ModuleApi(homeserver, homeserver.get_auth_handler()) def test_can_register_user(self): """Tests that an external module can register a user""" # Register a new user user_id, access_token = self.get_success( self.module_api.register( "bob", displayname="Bobberino", emails=["bob@bobinator.bob"] ) ) # Check that the new user exists with all provided attributes self.assertEqual(user_id, "@bob:test") self.assertTrue(access_token) self.assertTrue(self.store.get_user_by_id(user_id)) # Check that the email was assigned emails = self.get_success(self.store.user_get_threepids(user_id)) self.assertEqual(len(emails), 1) email = emails[0] self.assertEqual(email["medium"], "email") self.assertEqual(email["address"], "bob@bobinator.bob") # Should these be 0? self.assertEqual(email["validated_at"], 0) self.assertEqual(email["added_at"], 0) # Check that the displayname was assigned displayname = self.get_success(self.store.get_profile_displayname("bob")) self.assertEqual(displayname, "Bobberino")