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)
Пример #8
0
 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")
 def test_to_json(self):
     user = User("someid", "*****@*****.**", "id")
     expected = {"id": "someid", "email": "*****@*****.**", "groups_id": ("id",)}
     self.assertDictEqual(expected, user.to_json())