def test_remove_watcher_not_in_healthcheck(self): hmock = mock.Mock(group_id="group1") user = User("123", "*****@*****.**", "group2") self.backend.storage.find_healthcheck_by_name.return_value = hmock self.backend.storage.find_user_by_email.return_value = user with self.assertRaises(WatcherNotInInstanceError): self.backend.remove_watcher("healthcheck", user.email)
def test_remove(self): name = "blah" id = "someid" url = 'http://test.com/healthcheck' old_remove_url = self.backend.remove_url self.backend.remove_url = mock.Mock() old_remove_watcher = self.backend.remove_watcher self.backend.remove_watcher = mock.Mock() self.backend.storage.find_urls_by_healthcheck_name.return_value = [url] hmock = mock.Mock(group_id=id, host_id=id) self.backend.storage.find_healthcheck_by_name.return_value = hmock watchers = ['*****@*****.**'] self.backend.storage.find_watchers_by_healthcheck_name.return_value = watchers user = User("123", "*****@*****.**", id) self.backend.storage.find_user_by_email.return_value = user self.backend.remove(name) self.backend.storage.find_urls_by_healthcheck_name.assert_called_with( name) self.backend.zapi.usergroup.delete.assert_called_with(id) self.backend.zapi.host.delete.assert_called_with(id) self.backend.storage.remove_healthcheck.assert_called_with(hmock) assert self.backend.remove_url.called assert self.backend.remove_watcher.called self.backend.remove_url = old_remove_url self.backend.remove_watcher = old_remove_watcher
def test_find_users_by_group(self): user1 = User("id1", "*****@*****.**", "group_id1", "group_id2", "group_id3") user2 = User("id2", "*****@*****.**", "group_id2", "group_id3") user3 = User("id3", "*****@*****.**", "group_id3") self.storage.add_user(user1) self.addCleanup(self.storage.remove_user, user1) self.storage.add_user(user2) self.addCleanup(self.storage.remove_user, user2) self.storage.add_user(user3) self.addCleanup(self.storage.remove_user, user3) users = self.storage.find_users_by_group("group_id3") self.assertEqual([user1, user2, user3], users) users = self.storage.find_users_by_group("group_id2") self.assertEqual([user1, user2], users) users = self.storage.find_users_by_group("group_id1") self.assertEqual([user1], users)
def test_remove_watcher(self): hmock = mock.Mock(group_id="group") user = User("123", "*****@*****.**", "group") self.backend.storage.find_healthcheck_by_name.return_value = hmock self.backend.storage.find_user_by_email.return_value = user self.backend.remove_watcher("healthcheck", user.email) self.backend.zapi.user.delete.assert_called_with("123") self.backend.storage.remove_user.assert_called_with(user)
def test_user(self): id = "someid" email = "*****@*****.**" group_id = "anotherid" user = User(id, email, group_id) self.assertEqual(user.id, id) self.assertEqual(user.email, email) self.assertEqual(user.groups_id, (group_id,))
def test_include_user_in_group(self): user = User("userid", "*****@*****.**", "group1") self.storage.add_user(user) self.addCleanup(self.storage.remove_user, user) self.storage.add_user_to_group(user, "group2") self.storage.add_user_to_group(user, "group3") self.storage.add_user_to_group(user, "group4") self.storage.add_user_to_group(user, "group5") user = self.storage.find_user_by_email(user.email) self.assertEqual(("group1", "group2", "group3", "group4", "group5"), user.groups_id)
def test_remove_watcher_not_last_group(self): group = "group1" hmock = mock.Mock(group_id=group) user = User("123", "*****@*****.**", "group1", "group2") users = [mock.Mock(id="123"), mock.Mock(id="456"), mock.Mock(id="789")] self.backend.storage.find_users_by_group.return_value = users self.backend.storage.find_user_by_email.return_value = user self.backend.storage.find_healthcheck_by_name.return_value = hmock self.backend.remove_watcher("healthcheck", user.email) self.backend.zapi.usergroup.update.assert_called_with( usrgrpid="group1", userids=["456", "789"], ) self.backend.storage.remove_user_from_group.assert_called_with( user, group)
def _add_new_user(self, hc, email): result = self.zapi.user.create( alias=email, passwd="", usrgrps=[hc.group_id], user_medias=[{ "mediatypeid": "1", "sendto": email, "active": 0, "severity": 63, "period": "1-7,00:00-24:00", }], ) user_id = result["userids"][0] user = User(user_id, email, hc.group_id) self.storage.add_user(user)
def test_remove_with_urls_more_than_one_group(self): name = "blah" url = "http://mysite.com" item_id = 1 trigger_id = 2 action_id = 3 group_id = "4" another_group_id = "4-2" host_id = "5" user_id = "6" item = Item(url, item_id=item_id, trigger_id=trigger_id, action_id=action_id) self.backend.storage.find_item_by_url.return_value = item self.backend.storage.find_urls_by_healthcheck_name.return_value = [url] hc = HealthCheck(name, group_id=group_id, host_id=host_id) self.backend.storage.find_healthcheck_by_name.return_value = hc watchers = ['*****@*****.**'] self.backend.storage.find_watchers_by_healthcheck_name.return_value = watchers user = User(user_id, "*****@*****.**", group_id, another_group_id) self.backend.storage.find_user_by_email.return_value = user self.backend.storage.find_users_by_group.return_value = [user] self.backend.zapi.trigger.get.return_value = [{"comments": "xxx"}] self.backend.remove(name) self.backend.zapi.usergroup.delete.assert_called_with(group_id) self.backend.zapi.host.delete.assert_called_with(host_id) self.backend.zapi.action.delete.assert_called_with(action_id) self.backend.zapi.httptest.delete.assert_called_with(item_id) self.backend.zapi.usergroup.update.assert_called_with( usrgrpid=group_id, userids=[]) self.backend.storage.remove_healthcheck.assert_called_with(hc) self.backend.storage.remove_item.assert_called_with(item) self.backend.storage.find_healthcheck_by_name.assert_called_with(name) self.backend.storage.find_urls_by_healthcheck_name.assert_called_with( name) self.backend.storage.find_item_by_url.assert_called_with(url) self.backend.storage.find_users_by_group.assert_called_with(group_id)
def test_to_json(self): user = User("someid", "*****@*****.**", "id") expected = {"id": "someid", "email": "*****@*****.**", "groups_id": ("id",)} self.assertDictEqual(expected, user.to_json())
def setUp(self): self.storage = MongoStorage() self.url = "http://myurl.com" self.item = Item(self.url) self.user = User("id", "*****@*****.**", ["group_id"]) self.healthcheck = HealthCheck("bla")