def test_get_real_users(self): get_legacy_user() # Ensure at least the legacy user exists. users = [ factory.make_user(), factory.make_user(), ] self.assertSetEqual(set(users), set(get_real_users()))
def test_migrate_ancillary_data_to_legacy_user_when_multiple_users(self): factory.make_FileStorage(owner=None) # Create two users, both with API credentials, an SSH key and a node. user1 = factory.make_User() consumer1, token1 = user1.userprofile.create_authorisation_token() key1 = factory.make_SSHKey(user1, get_ssh_key_string(1)) node1 = factory.make_Node(owner=user1) user2 = factory.make_User() consumer2, token2 = user2.userprofile.create_authorisation_token() key2 = factory.make_SSHKey(user2, get_ssh_key_string(2)) node2 = factory.make_Node(owner=user2) migrate() # The SSH keys have been copied to the legacy user. legacy_user = get_legacy_user() legacy_users_ssh_keys = get_ssh_keys(legacy_user) self.assertSetEqual({key1.key, key2.key}, set(legacy_users_ssh_keys)) # The API credentials have been moved to the legacy user. legacy_users_nodes = Node.objects.filter(owner=legacy_user) self.assertSetEqual({node1, node2}, set(legacy_users_nodes)) self.assertEqual( (legacy_user, legacy_user, legacy_user, legacy_user), ( reload_object(consumer1).user, reload_object(token1).user, reload_object(consumer2).user, reload_object(token2).user, ), )
def test_get_legacy_user_creates_user(self): self.assertEqual([], list(self.find_legacy_user())) legacy_user = get_legacy_user() self.assertEqual([legacy_user], list(self.find_legacy_user())) self.assertThat( legacy_user, MatchesStructure.byEquality( first_name="Shared", last_name="Environment", email=legacy_user_name + "@localhost", is_active=True))
def test_get_destination_user_with_orphaned_juju_state(self): user = factory.make_User() # Also create another user. factory.make_User() node = factory.make_Node(owner=user) make_provider_state_file(node) node.delete() # Orphan the state. self.assertEqual(get_legacy_user(), get_destination_user())
def test_get_real_users_no_users(self): get_legacy_user() # Ensure at least the legacy user exists. self.assertEqual([], list(get_real_users()))
def test_get_legacy_user_creates_user_only_once(self): legacy_user1 = get_legacy_user() self.assertEqual([legacy_user1], list(self.find_legacy_user())) legacy_user2 = get_legacy_user() self.assertEqual([legacy_user2], list(self.find_legacy_user())) self.assertEqual(legacy_user1, legacy_user2)
def test_get_destination_user_with_orphaned_juju_state(self): user1, user2 = factory.make_user(), factory.make_user() node = factory.make_node(owner=user1) make_provider_state_file(node) node.delete() # Orphan the state. self.assertEqual(get_legacy_user(), get_destination_user())
def test_get_destination_user_no_real_users(self): self.assertEqual(get_legacy_user(), get_destination_user())
def test_get_destination_user_two_real_users(self): factory.make_user() factory.make_user() self.assertEqual(get_legacy_user(), get_destination_user())
def test_get_owned_nodes_with_nodes_owned_by_system_users(self): factory.make_node(owner=get_legacy_user()), self.assertEqual([], list(get_owned_nodes()))