class TestWhitelistContactFilter(TestCase): def setUp(self): self.client = mock_strict_redis_client() self.whitelist = Whitelist(self.client, Encoder()) def test_that_priority_is_high_when_contact_is_whitelisted(self): self.whitelist.poll_contacts("keyword_filter", "11111111") whitelist_filter = WhitelistContactFilter(self.whitelist, "11111111") priority = whitelist_filter.prioritize() self.assertEqual(priority, Priority.HIGH) def test_that_priority_is_unknown_when_contact_is_not_whitelisted(self): whitelist_filter = WhitelistContactFilter(self.whitelist, "11111111") priority = whitelist_filter.prioritize() self.assertEqual(priority, Priority.UNKNOWN)
def setUp(self): self.client = mock_strict_redis_client() self.encoder = Mock() self.encoder.encode = self.reverse_string self.blacklist = Blacklist(self.client, self.encoder) self.whitelist = Whitelist(self.client, self.encoder) self.poll_texts_key_name = "blacklist:poll_texts:231" self.poll_contacts_key_name = "blacklist:poll_contacts:231"
def setUp(self): self.client = mock_strict_redis_client() self.whitelist = Whitelist(self.client, Encoder())
class TestBlacklist(TestCase): def setUp(self): self.client = mock_strict_redis_client() self.encoder = Mock() self.encoder.encode = self.reverse_string self.blacklist = Blacklist(self.client, self.encoder) self.whitelist = Whitelist(self.client, self.encoder) self.poll_texts_key_name = "blacklist:poll_texts:231" self.poll_contacts_key_name = "blacklist:poll_contacts:231" def reverse_string(self, text): return text[::-1] def test_that_poll_text_can_be_black_listed(self): self.blacklist.poll_text(231, "sample text") self.assertTrue(self.client.sismember(self.poll_texts_key_name, self.reverse_string("sample text"))) def test_that_an_array_of_poll_texts_can_be_black_listed(self): self.blacklist.poll_text(231, ["sample 1", "sample 2", "sample 3"]) self.assertTrue(self.client.sismember(self.poll_texts_key_name, self.reverse_string("sample 1"))) self.assertTrue(self.client.sismember(self.poll_texts_key_name, self.reverse_string("sample 2"))) self.assertTrue(self.client.sismember(self.poll_texts_key_name, self.reverse_string("sample 3"))) self.assertFalse(self.client.sismember(self.poll_texts_key_name, self.reverse_string("sample 4"))) def test_that_only_inserted_text_exist(self): self.blacklist.poll_text(231, "valid text") self.assertFalse(self.blacklist.has_poll_text(231, "invalid text")) self.assertTrue(self.blacklist.has_poll_text(231, "valid text")) def test_that_poll_text_can_be_deleted(self): text_to_delete = "text to delete" self.blacklist.poll_text(231, text_to_delete) self.blacklist.poll_text(231, "text not to delete") self.assertTrue(self.blacklist.has_poll_text(231, text_to_delete)) self.blacklist.delete_poll_text(231, text_to_delete) self.assertFalse(self.blacklist.has_poll_text(231, text_to_delete)) self.assertTrue(self.blacklist.has_poll_text(231, "text not to delete")) def test_that_poll_contacts_can_be_black_listed(self): ones = "1111111" twos = "2222222" threes = "33333" self.blacklist.poll_contacts(231, [ones, twos]) self.assertTrue(self.client.sismember(self.poll_contacts_key_name, ones)) self.assertTrue(self.client.sismember(self.poll_contacts_key_name, twos)) self.assertFalse(self.client.sismember(self.poll_contacts_key_name, threes)) def test_that_inserted_poll_contact_exists(self): ones = "1111111" self.blacklist.poll_contacts(231, ones) self.assertTrue(self.blacklist.has_poll_contact(231, ones)) def test_that_poll_contacts_can_be_deleted(self): ones = "1111111" twos = "2222222" threes = "33333" self.blacklist.poll_contacts(231, [ones, twos, threes]) self.assertTrue(self.blacklist.has_poll_contact(231, ones)) self.assertTrue(self.blacklist.has_poll_contact(231, twos)) self.assertTrue(self.blacklist.has_poll_contact(231, threes)) self.blacklist.delete_poll_contacts(231, [twos,threes]) self.assertTrue(self.blacklist.has_poll_contact(231, ones)) self.assertFalse(self.blacklist.has_poll_contact(231, twos)) self.assertFalse(self.blacklist.has_poll_contact(231, threes)) def test_that_whitelist_returns_a_valid_key_name(self): text_key_name = self.whitelist.get_key_name(231, ContentTypes.TEXT) contacts_key_name = self.whitelist.get_key_name(231, ContentTypes.CONTACTS) self.assertEqual(text_key_name.find("whitelist:"), 0) self.assertEqual(contacts_key_name.find("whitelist:"), 0) def test_that_we_can_fetch_the_poll_keys(self): self.blacklist.poll_text(231, "sample 1") self.blacklist.poll_text(232, "sample 2") poll_keys = self.blacklist.get_poll_text_keys() self.assertTrue('blacklist:poll_texts:231' in poll_keys and 'blacklist:poll_texts:232' in poll_keys) def test_that_only_poll_contact_keys_are_returned(self): self.blacklist.poll_contacts(231, "11111111") self.blacklist.poll_text(232, "sample 2") poll_contact_keys = self.blacklist.get_poll_contact_keys() self.assertEqual(len(poll_contact_keys), 1) def test_that_poll_keys_returns_nothing_when_no_poll_text_was_added(self): poll_keys = self.blacklist.get_poll_text_keys() self.assertEqual(poll_keys, []) def test_that_poll_keys_are_returned_for_only_the_specific_list_type(self): self.blacklist.poll_text(231, "sample 1") self.whitelist.poll_text(232, "sample 2") blacklist_poll_keys = self.blacklist.get_poll_text_keys() self.assertEqual(len(blacklist_poll_keys), 1) def test_that_polls_have_text(self): self.blacklist.poll_text(231, "sample 1") self.blacklist.poll_text(232, "sample 2") self.assertTrue(self.blacklist.contains_text("sample 1")) self.assertTrue(self.blacklist.contains_text("sample 2")) self.assertFalse(self.blacklist.contains_text("sample 3")) def test_that_polls_have_contact(self): self.blacklist.poll_contacts(231, "sample 1") self.blacklist.poll_contacts(232, "sample 2") self.assertTrue(self.blacklist.contains_contact("sample 1")) self.assertTrue(self.blacklist.contains_contact("sample 2")) self.assertFalse(self.blacklist.contains_contact("sample 3")) def test_that_a_text_set_can_be_deleted(self): self.blacklist.poll_text(231, "sample 1") self.assertTrue(self.blacklist.set_key_exists(231, ContentTypes.TEXT)) self.blacklist.delete_poll_text_set(231) self.assertFalse(self.blacklist.set_key_exists(231, ContentTypes.TEXT)) def test_that_a_contacts_set_can_be_deleted(self): self.blacklist.poll_contacts(231, "1111111") self.assertTrue(self.blacklist.set_key_exists(231, ContentTypes.CONTACTS)) self.blacklist.delete_poll_contacts_set(231) self.assertFalse(self.blacklist.set_key_exists(231, ContentTypes.CONTACTS)) def test_that_add_expire_method_gets_called_with_key_name(self): self.blacklist.add_expire = Mock() self.blacklist.poll_text(231, "sample 1") self.blacklist.add_expire.assert_called_with("blacklist:poll_texts:231") def test_that_add_expire_only_adds_expire_when_no_time_to_live_exists(self): original_expire = self.blacklist.redis_client.expire self.blacklist.redis_client.expire = Mock() self.blacklist.poll_text(231, "sample 1") original_expire("blacklist:poll_texts:231", 86400) self.blacklist.poll_text(231, "sample 2") self.blacklist.redis_client.expire.assert_called_once_with("blacklist:poll_texts:231", 86400)