def test_send_change_notification_should_handle_empty_added_list( self, mocked_send_markdown): added = [] removed = [ VkGroupManager("id3", "role3", "name3"), VkGroupManager("id4", "role4", "name4") ] Slack("url").send_change_notification(added, removed) expected = "*Removed:* <https://vk.com/idid3|name3> (role3), <https://vk.com/idid4|name4> (role4)" mocked_send_markdown.assert_called_once_with(expected)
def test_send_change_notification_should_handle_empty_removed_list( self, mocked_send_markdown): added = [ VkGroupManager("id1", "role1", "name1"), VkGroupManager("id2", "role2", "name2") ] removed = [] Slack("url").send_change_notification(added, removed) expected = "*Added:* <https://vk.com/idid1|name1> (role1), <https://vk.com/idid2|name2> (role2)" mocked_send_markdown.assert_called_once_with(expected)
def test_send_change_notification_should_call_send_markdown_and_include_prefix( self, mocked_send_markdown): added = [VkGroupManager("id1", "role1", "name1")] removed = [VkGroupManager("id2", "role2", "name2")] Slack("url").send_change_notification(added, removed, prefix="prefix markdown") expected = "\n".join([ "prefix markdown", "*Added:* <https://vk.com/idid1|name1> (role1)", "*Removed:* <https://vk.com/idid2|name2> (role2)" ]) mocked_send_markdown.assert_called_once_with(expected)
def test_send_change_notification_should_call_send_markdown( self, mocked_send_markdown): added = [ VkGroupManager("id1", "role1", "name1"), VkGroupManager("id2", "role2", "name2") ] removed = [ VkGroupManager("id3", "role3", "name3"), VkGroupManager("id4", "role4", "name4") ] Slack("url").send_change_notification(added, removed) expected = "\n".join([ "*Added:* <https://vk.com/idid1|name1> (role1), <https://vk.com/idid2|name2> (role2)", "*Removed:* <https://vk.com/idid3|name3> (role3), <https://vk.com/idid4|name4> (role4)" ]) mocked_send_markdown.assert_called_once_with(expected)
def test_get_group_managers_oneshot_should_return_managers(self, mocked): mocked.return_value = { "items": [{ "id": "id1", "role": "role1" }, { "id": "id2", "role": "role2" }] } managers = Vk("token").get_group_managers_oneshot("gid") expected = [ VkGroupManager("id1", "role1"), VkGroupManager("id2", "role2") ] self.assertEqual([vars(m) for m in managers], [vars(e) for e in expected])
def test_get_group_managers_should_return_managers(self, mocked): mocked.side_effect = [[ VkGroupManager("id1", "role1"), VkGroupManager("id2", "role2") ], [VkGroupManager("id3", "role3")], []] managers = Vk("token").get_group_managers("gid") expected = [ VkGroupManager("id1", "role1"), VkGroupManager("id2", "role2"), VkGroupManager("id3", "role3") ] self.assertEqual([vars(m) for m in managers], [vars(e) for e in expected])
def test_get_group_managers_should_call_oneshot_method_with_pagination( self, mocked): mocked.side_effect = [[VkGroupManager("id", "role")], []] Vk("token").get_group_managers("gid") mocked.assert_has_calls([mock.call("gid", 0), mock.call("gid", 1)])
def test_init_should_validate_args(self): with self.assertRaises(ValueError): VkGroupManager("", "role") with self.assertRaises(ValueError): VkGroupManager("id", "")
def test_deserialize_should_restore_serialized_objects(self): manager = VkGroupManager("id", "role", "display name") serialized = manager.serialize() deserialized = VkGroupManager.deserialize(serialized) self.assertEqual(vars(manager), vars(deserialized))
def test_add_user_details_should_add_user_details(self): manager = VkGroupManager("id", "role") user = VkUser("id", "First", "Last") manager.add_user_details(user) self.assertEqual(manager.display_name, user.display_name)
def test_is_admin_should_check_if_manager_is_in_admin_role(self): self.assertTrue(VkGroupManager("id", "creator").is_admin) self.assertTrue(VkGroupManager("id", "administrator").is_admin) self.assertFalse(VkGroupManager("id", "moderator").is_admin)