def test_all_for_company_by_company_id(self): # Iterate over all tags for user red_tag = Tag.tag_companies("red", [self.company.id]) tags = Tag.find_all_for_company(company_id=self.company.id) for tag in tags: self.assertEqual(red_tag.id, tag.id) Tag.untag_companies("red", [self.company.id])
def test_user_counts_for_each_tag(self): # Get User Tag Count Object Tag.tag_users('blue', [self.user.id]) counts = Count.user_counts_for_each_tag Tag.untag_users('blue', [self.user.id]) for count in counts: if 'blue' in count: eq_(count['blue'], 1)
def it_creates_a_tag(self): with patch.object( Intercom, 'post', return_value=test_tag) as mock_method: # noqa tag = Tag.create(name="Test Tag") eq_(tag.name, "Test Tag") mock_method.assert_called_once_with('/tags/', name="Test Tag")
def it_tags_users(self): params = { 'name': 'Test Tag', 'user_ids': ['abc123', 'def456'], 'tag_or_untag': 'tag' } with patch.object(Intercom, 'post', return_value=test_tag) as mock_method: # noqa tag = Tag.create(**params) eq_(tag.name, "Test Tag") eq_(tag.tagged_user_count, 2) mock_method.assert_called_once_with('/tags/', **params)
def add_tag(customer_id, tag): customer = Customer.objects.select_related('user').get(id=customer_id) user = IntercomUser.find(email=customer.user.email) try: IntercomTag.tag_users(tag, [user.id]) except ResourceNotFound as e: IntercomTag.create(name=tag) IntercomTag.tag_users(tag, [user.id]) logger.error('add_tag [ResourceNotFound]: %s' % e)
def sync_tags(): customers = Customer.objects.select_related('user').all() for customer in customers: tags = customer.get_tags() if tags: user = IntercomUser.find(email=customer.user.email) for tag in tags: try: IntercomTag.tag_users(tag, [user.id]) except ResourceNotFound as e: IntercomTag.create(tag) IntercomTag.tag_users(tag, [user.id]) logger.error('sync_tags [ResourceNotFound]: %s' % e)
def test_total_tag_count(self): ok_(Tag.count() >= 0)
def test_all_for_user_by_email(self): # Iterate over all tags for user tags = Tag.find_all_for_user(email=self.user.email) for tag in tags: self.assertIsNotNone(tag.id)
def test_all_for_user_by_user_id(self): # Iterate over all tags for user tags = Tag.find_all_for_user(user_id=self.user.user_id) for tag in tags: self.assertIsNotNone(tag.id)
def test_untag_companies(self): # Untag companies tag = Tag.untag_companies("red", [self.user.companies[0].id]) self.assertEqual(tag.name, "red") company = Company.find(id=self.user.companies[0].id) self.assertEqual(0, len(company.tags))
def test_all(self): # Iterate over all tags for tag in Tag.all(): self.assertIsNotNone(tag.id)
def test_untag_users(self): # Untag users tag = Tag.untag_users("blue", [self.user.id]) self.assertEqual(tag.name, "blue") user = User.find(email=self.user.email) self.assertEqual(0, len(user.tags))
def test_company_counts_for_each_tag(self): # Get Company Tag Count Object Tag.tag_companies('blue', [self.company.id]) counts = Count.company_counts_for_each_tag Tag.untag_companies('blue', [self.company.id])
def it_creates_a_tag(self): with patch.object(Intercom, 'post', return_value=test_tag) as mock_method: # noqa tag = Tag.create(name="Test Tag") eq_(tag.name, "Test Tag") mock_method.assert_called_once_with('/tags/', name="Test Tag")
def test_untag_users(self): # Untag users tag = Tag.untag_users('blue', [self.user.id]) self.assertEqual(tag.name, 'blue') user = User.find(email=self.user.email) self.assertEqual(0, len(user.tags))