Beispiel #1
0
 def test_refresh_not_called_after_save_if_disabled(self):
     app_settings.SEGMENTS_REFRESH_ON_SAVE = False
     s = AllUserSegmentFactory()
     s.refresh = Mock()
     s.save()
     self.assertEqual(s.refresh.call_count, 0)
     app_settings.SEGMENTS_REFRESH_ON_SAVE = True
Beispiel #2
0
 def test_refresh_not_called_after_save_if_disabled(self):
     app_settings.SEGMENTS_REFRESH_ON_SAVE = False
     s = AllUserSegmentFactory()
     s.refresh = Mock()
     s.save()
     self.assertEqual(s.refresh.call_count, 0)
     app_settings.SEGMENTS_REFRESH_ON_SAVE = True
Beispiel #3
0
    def test_refresh(self, mocked_segment):
        s1 = AllUserSegmentFactory()
        s1.refresh = Mock(return_value=True)
        mocked_segment.assert_called_once_with()

        refresh_segments()

        self.assertEqual(mocked_segment.call_count, 2)
Beispiel #4
0
 def test_refresh_existing_segment(self):
     segments.app_settings.SEGMENTS_REFRESH_ON_SAVE = True
     segments.app_settings.SEGMENTS_REFRES_ASYNC = False
     u1 = UserFactory()
     s = AllUserSegmentFactory()
     u2 = UserFactory()
     self.assertEqual(len(s), 1)
     s.refresh()
     self.assertEqual(len(s), 2)
Beispiel #5
0
 def test_refresh_existing_segment(self):
     segments.app_settings.SEGMENTS_REFRESH_ON_SAVE = True
     segments.app_settings.SEGMENTS_REFRES_ASYNC = False
     u1 = UserFactory()
     s = AllUserSegmentFactory()
     u2 = UserFactory()
     self.assertEqual(len(s), 1)
     s.refresh()
     self.assertEqual(len(s), 2)
Beispiel #6
0
    def test_refresh(self, mocked_segment):
        s1 = AllUserSegmentFactory()
        s1.refresh = Mock(return_value=True)

        s2 = AllUserSegmentFactory()
        s2.refresh = Mock(return_value=True)

        mocked_segment.return_value = [s1, s2]

        refresh_segments()

        self.assertEqual(s1.refresh.call_count, 1)
Beispiel #7
0
 def setUp(self):
     Segment.helper = SegmentHelper(redis_obj=fakeredis.FakeStrictRedis(
         charset='utf-8', decode_responses=True))
     self.u = UserFactory()
     self.s = AllUserSegmentFactory()
     app_settings.SEGMENTS_REFRESH_ASYNC = False
     app_settings.SEGMENTS_REFRESH_ON_SAVE = True
Beispiel #8
0
    def test_multiple_dbs(self):
        """
        This seems crazy, but it's the only way to get test coverage on this in the test environment.
        For instance Segments is using a SEGMENTS_CONNECT_NAME of 'readonly' vs. 'default' everywhere else
        in the application.

        There's no way to actually set that up with a sqlite test DB, so we simulate it here by explicitly
        creating a "mirror" user object directly in the second database.
        """
        from segments.tests.models import SegmentableUser
        app_settings.SEGMENTS_EXEC_CONNECTION = 'other'
        SegmentableUser.objects.using(app_settings.SEGMENTS_EXEC_CONNECTION).create()
        s = AllUserSegmentFactory()
        s.refresh()
        self.assertEqual(len(s), 1)
        app_settings.SEGMENTS_EXEC_CONNECTION = 'default'
Beispiel #9
0
    def test_multiple_dbs(self):
        """
        This seems crazy, but it's the only way to get test coverage on this in the test environment.
        For instance Segments is using a SEGMENTS_CONNECT_NAME of 'readonly' vs. 'default' everywhere else
        in the application.

        There's no way to actually set that up with a sqlite test DB, so we simulate it here by explicitly
        creating a "mirror" user object directly in the second database.
        """
        from segments.tests.models import SegmentableUser
        app_settings.SEGMENTS_EXEC_CONNECTION = 'other'
        SegmentableUser.objects.using(
            app_settings.SEGMENTS_EXEC_CONNECTION).create()
        s = AllUserSegmentFactory()
        s.refresh()
        self.assertEqual(len(s), 1)
        app_settings.SEGMENTS_EXEC_CONNECTION = 'default'
Beispiel #10
0
    def test_delete_segment(self):
        user = UserFactory()
        segment = AllUserSegmentFactory()
        self.assertTrue(segment.has_member(user))

        segment.delete()
        self.assertFalse(segment.has_member(user))
Beispiel #11
0
    def test_refresh(self, mocked_segment):
        s1 = AllUserSegmentFactory()
        s1.refresh = Mock(return_value=True)

        s2 = AllUserSegmentFactory()
        s2.refresh = Mock(return_value=True)

        mocked_segment.return_value = [s1, s2]

        refresh_segments()

        self.assertEqual(s1.refresh.call_count, 1)
Beispiel #12
0
 def test_refresh_after_create(self):
     s = AllUserSegmentFactory.build()
     s.refresh = Mock()
     s.save()
     s.refresh.assert_called_with()
Beispiel #13
0
 def test_refresh_after_save(self):
     s = AllUserSegmentFactory()
     s.refresh = Mock()
     s.save()
     self.assertEqual(s.refresh.call_count, 1)
Beispiel #14
0
 def test_refresh_async_called_if_enabled(self, mocked_refresh):
     mocked_refresh.delay = Mock()
     app_settings.SEGMENTS_REFRESH_ASYNC = True
     AllUserSegmentFactory()
     self.assertEqual(mocked_refresh.delay.call_count, 1)
     app_settings.SEGMENTS_REFRESH_ASYNC = False
Beispiel #15
0
 def test_delete_segment(self, p_redis_sadd, p_rsm):
     s = AllUserSegmentFactory()
     s.delete()
     self.assertTrue(p_redis_sadd.called)
     self.assertTrue(p_rsm.called)
Beispiel #16
0
 def test_refresh_after_save(self):
     s = AllUserSegmentFactory()
     s.refresh = Mock()
     s.save()
     self.assertEqual(s.refresh.call_count, 1)
Beispiel #17
0
 def test_refresh_after_create(self):
     s = AllUserSegmentFactory.build()
     s.refresh = Mock()
     s.save()
     s.refresh.assert_called_with()
Beispiel #18
0
 def test_multiple_segments(self):
     s1 = AllUserSegmentFactory()
     s2 = AllUserSegmentFactory()
     self.assertEqual(len(s2), 1)
Beispiel #19
0
    def test_segment_refresh(self):
        s = AllUserSegmentFactory()
        UserFactory()
        s.refresh()
        self.assertEqual(len(s), 2)

        # Change up the segment to only match one user
        s.definition = 'select * from %s where id = %s limit 1' % (
            user_table(), self.u.id)
        s.save()
        self.assertEqual(len(s), 1)
        s.refresh()
        self.assertEqual(len(s), 1)

        # Add a 3rd user, should still only store one user
        u3 = UserFactory()
        s.refresh()
        self.assertEqual(len(s), 1)

        # Expand the definition to include 3 users again
        s.definition = 'select * from %s' % (user_table())
        s.save()
        s.refresh()
        self.assertEqual(len(s), 3)

        # Remove one user
        u3.delete()
        s.refresh()
        self.assertEqual(len(s), 2)
Beispiel #20
0
 def test_basic_segment(self):
     s = AllUserSegmentFactory()
     self.assertEqual(len(s), 1)
Beispiel #21
0
    def test_segment_refresh(self):
        s = AllUserSegmentFactory()
        UserFactory()
        s.refresh()
        self.assertEqual(len(s), 2)

        # Change up the segment to only match one user
        s.definition = 'select * from %s where id = %s limit 1' % (user_table(), self.u.id)
        s.save()
        self.assertEqual(len(s), 1)
        s.refresh()
        self.assertEqual(len(s), 1)

        # Add a 3rd user, should still only store one user
        u3 = UserFactory()
        s.refresh()
        self.assertEqual(len(s), 1)

        # Expand the definition to include 3 users again
        s.definition = 'select * from %s' % (user_table())
        s.save()
        s.refresh()
        self.assertEqual(len(s), 3)

        # Remove one user
        u3.delete()
        s.refresh()
        self.assertEqual(len(s), 2)
Beispiel #22
0
 def test_delete_segment(self, p_redis_sadd, p_rsm):
     s = AllUserSegmentFactory()
     s.delete()
     self.assertTrue(p_redis_sadd.called)
     self.assertTrue(p_rsm.called)