Exemple #1
0
    def setUp(self):
        views.RSS = MagicMock()
        self.rss_object = MagicMock()
        views.RSS.objects.all.return_value = [self.rss_object]

        # Create request user mock
        user_object = MagicMock()
        user_object.username = '******'
        user_object.pk = '1111'
        user_object.is_staff = False
        self.request = MagicMock()
        self.request.user = user_object

        # Create organization mock
        self.org_object = MagicMock()
        self.org_object.name = 'test_org'
        self.org_object.managers = ['1111']
        self.org_object.payment_info = {
            'number': '4567456745674567'
        }
        views.Organization = MagicMock()
        views.Organization.objects.get.return_value = self.org_object

        views.RSSManagerFactory = MagicMock()
        self._limits_factory = MagicMock()
        views.RSSManagerFactory.return_value = self._limits_factory

        self._exp_mock = MagicMock(name="ExpenditureManager")
        self._limits_factory.get_expenditure_manager.return_value = self._exp_mock
Exemple #2
0
def test_search_needs_revision():
    user = MagicMock(spec=auth_models.User)
    user.is_staff = True
    queryset = MagicMock(spec=QuerySet)

    expected_result = MagicMock(spec=QuerySet)
    (queryset
        .select_related.return_value
        .prefetch_related.return_value
        .filter.return_value
        .annotate.return_value
        .order_by.return_value) = expected_result

    params = {'needs_revision': True}
    result = models.album.objects.get_search_queryset(user, queryset, params)

    chained = (
       call
       .select_related('cover_photo')
       .prefetch_related('cover_photo__photo_file_set')
       .filter(MyQ(revised__lt=ANY) | MyQ(revised__isnull=True))
       .annotate(null_revised=ANY)
       .order_by('null_revised', 'revised', '-pk')
    )
    assert queryset.mock_calls == chained.call_list()
    assert result is expected_result
Exemple #3
0
def test_search_ascendants(categorys):
    user = MagicMock(spec=auth_models.User)
    user.is_staff = True
    queryset = MagicMock(spec=QuerySet)

    expected_result = MagicMock(spec=QuerySet)
    (queryset
        .select_related.return_value
        .prefetch_related.return_value
        .filter.return_value) = expected_result

    params = {'instance': categorys['Parent'].pk, 'mode': 'ascendants'}
    result = models.category.objects.get_search_queryset(
        user, queryset, params)

    chained = (
       call
       .select_related('cover_photo')
       .prefetch_related('cover_photo__photo_file_set')
       .filter(
           descendant_set__descendant=categorys['Parent'],
           descendant_set__position__gt=0)
    )
    assert queryset.mock_calls == chained.call_list()
    assert result is expected_result
Exemple #4
0
def test_search_q():
    user = MagicMock(spec=auth_models.User)
    user.is_staff = True
    queryset = MagicMock(spec=QuerySet)

    expected_result = MagicMock(spec=QuerySet)
    (queryset
        .select_related.return_value
        .prefetch_related.return_value
        .filter.return_value) = expected_result

    params = {'q': ['meow']}
    result = models.place.objects.get_search_queryset(user, queryset, params)

    q = (
        MyQ(title__icontains='meow')
        | MyQ(address__icontains='meow')
        | MyQ(address2__icontains='meow')
        | MyQ(city__icontains='meow')
        | MyQ(state__icontains='meow')
        | MyQ(country__icontains='meow')
    )
    chained = (
       call
       .select_related('cover_photo')
       .prefetch_related('cover_photo__photo_file_set')
       .filter(q)
    )
    assert queryset.mock_calls == chained.call_list()
    assert result is expected_result
Exemple #5
0
    def setUp(self):
        views.RSS = MagicMock()
        self.rss_object = MagicMock()
        self.views.RSS.objects.all.return_value = [self.rss_object]

        # Create mock request
        user_object = MagicMock()
        user_object.is_staff = True
        user_object.userprofile.actor_id = 2

        self.request = MagicMock()
        self.request.user = user_object

        # Mock user
        views.User = MagicMock()
        views.User.objects.get = MagicMock()
        views.User.objects.get.return_value = user_object

        # Mock Userprofile
        views.UserProfile = FakeProfile()
        views.Organization = FakeOrganization()

        views.RSSManagerFactory = MagicMock()
        self._rss_factory = MagicMock()
        views.RSSManagerFactory.return_value = self._rss_factory

        self.exp_object = MagicMock()
        self._rss_factory.get_expenditure_manager.return_value = self.exp_object
Exemple #6
0
def test_search_children(persons):
    user = MagicMock(spec=auth_models.User)
    user.is_staff = True
    queryset = MagicMock(spec=QuerySet)

    expected_result = MagicMock(spec=QuerySet)
    (queryset
        .select_related.return_value
        .prefetch_related.return_value
        .select_related.return_value
        .filter.return_value) = expected_result

    params = {'instance': persons['Parent'].pk, 'mode': 'children'}
    result = models.person.objects.get_search_queryset(
        user, queryset, params, 'detail')

    chained = (
       call
       .select_related('cover_photo')
       .prefetch_related('cover_photo__photo_file_set')
       .select_related('mother', 'father', 'spouse', 'home', 'work')
       .filter(MyQ(mother=persons['Parent']) | MyQ(father=persons['Parent']))
    )
    assert queryset.mock_calls == chained.call_list()
    assert result is expected_result
Exemple #7
0
def test_search_q():
    user = MagicMock(spec=auth_models.User)
    user.is_staff = True
    queryset = MagicMock(spec=QuerySet)

    expected_result = MagicMock(spec=QuerySet)
    (queryset
        .select_related.return_value
        .prefetch_related.return_value
        .select_related.return_value
        .filter.return_value) = expected_result

    params = {'q': ['meow']}
    result = models.person.objects.get_search_queryset(
        user, queryset, params, 'detail')

    q = (
        MyQ(first_name__icontains='meow')
        | MyQ(middle_name__icontains='meow')
        | MyQ(last_name__icontains='meow')
        | MyQ(called__icontains='meow')
    )
    chained = (
       call
       .select_related('cover_photo')
       .prefetch_related('cover_photo__photo_file_set')
       .select_related('mother', 'father', 'spouse', 'home', 'work')
       .filter(q)
    )
    assert queryset.mock_calls == chained.call_list()
    assert result is expected_result
Exemple #8
0
def test_search_root_only():
    user = MagicMock(spec=auth_models.User)
    user.is_staff = True
    queryset = MagicMock(spec=QuerySet)

    expected_result = MagicMock(spec=QuerySet)
    (queryset
        .select_related.return_value
        .prefetch_related.return_value
        .select_related.return_value
        .filter.return_value) = expected_result

    params = {'root_only': True}
    result = models.person.objects.get_search_queryset(
        user, queryset, params, 'detail')

    chained = (
       call
       .select_related('cover_photo')
       .prefetch_related('cover_photo__photo_file_set')
       .select_related('mother', 'father', 'spouse', 'home', 'work')
       .filter(mother__isnull=True, father__isnull=True)
    )
    assert queryset.mock_calls == chained.call_list()
    assert result is expected_result
Exemple #9
0
    def setUp(self):
        views.RSS = MagicMock()
        self.rss_object = MagicMock()
        views.RSS.objects.all.return_value = [self.rss_object]

        # Create request user mock
        user_object = MagicMock()
        user_object.username = '******'
        user_object.pk = '1111'
        user_object.is_staff = False
        self.request = MagicMock()
        self.request.user = user_object

        # Create organization mock
        self.org_object = MagicMock()
        self.org_object.name = 'test_org'
        self.org_object.managers = ['1111']
        self.org_object.payment_info = {'number': '4567456745674567'}
        views.Organization = MagicMock()
        views.Organization.objects.get.return_value = self.org_object

        views.RSSManagerFactory = MagicMock()
        self._limits_factory = MagicMock()
        views.RSSManagerFactory.return_value = self._limits_factory

        self._exp_mock = MagicMock(name="ExpenditureManager")
        self._limits_factory.get_expenditure_manager.return_value = self._exp_mock
Exemple #10
0
def test_search_q():
    user = MagicMock(spec=auth_models.User)
    user.is_staff = True
    queryset = MagicMock(spec=QuerySet)

    expected_result = MagicMock(spec=QuerySet)
    (queryset
        .select_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .filter.return_value
        .filter.return_value
        .filter.return_value) = expected_result

    params = {'q': ['meow']}
    result = models.photo.objects.get_search_queryset(
        user, queryset, params, 'detail')

    q = (
        MyQ(name__icontains='meow')
        | MyQ(title__icontains='meow')
        | MyQ(description__icontains='meow')
    )
    chained = (
       call
       .select_related('place')
       .prefetch_related('photo_file_set')
       .prefetch_related('place__cover_photo')
       .prefetch_related('place__cover_photo__photo_file_set')
       .prefetch_related('feedbacks')
       .prefetch_related('albums')
       .prefetch_related('albums__cover_photo')
       .prefetch_related('albums__cover_photo__photo_file_set')
       .prefetch_related('categorys')
       .prefetch_related('categorys__cover_photo')
       .prefetch_related('categorys__cover_photo__photo_file_set')
       .prefetch_related('photo_person_set')
       .prefetch_related('photo_person_set__person')
       .prefetch_related('photo_person_set__person__cover_photo')
       .prefetch_related(
           'photo_person_set__person__cover_photo__photo_file_set')
       .filter(MyQ())
       .filter(MyQ())
       .filter(q)
    )
    assert queryset.mock_calls == chained.call_list()
    assert result is expected_result
Exemple #11
0
def test_search_related(photos):
    user = MagicMock(spec=auth_models.User)
    user.is_staff = True
    queryset = MagicMock(spec=QuerySet)

    expected_result = MagicMock(spec=QuerySet)
    (queryset
        .select_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .prefetch_related.return_value
        .filter.return_value
        .filter.return_value
        .filter.return_value
        .distinct.return_value) = expected_result

    params = {'instance': photos['Parent'].pk, 'mode': 'children'}
    result = models.photo.objects.get_search_queryset(
        user, queryset, params, 'detail')

    chained = (
       call
       .select_related('place')
       .prefetch_related('photo_file_set')
       .prefetch_related('place__cover_photo')
       .prefetch_related('place__cover_photo__photo_file_set')
       .prefetch_related('feedbacks')
       .prefetch_related('albums')
       .prefetch_related('albums__cover_photo')
       .prefetch_related('albums__cover_photo__photo_file_set')
       .prefetch_related('categorys')
       .prefetch_related('categorys__cover_photo')
       .prefetch_related('categorys__cover_photo__photo_file_set')
       .prefetch_related('photo_person_set')
       .prefetch_related('photo_person_set__person')
       .prefetch_related('photo_person_set__person__cover_photo')
       .prefetch_related(
           'photo_person_set__person__cover_photo__photo_file_set')
       .filter(MyQ())
       .filter(MyQ())
       .filter(
           MyQ(relations_1__photo_2=photos['Parent'])
           | MyQ(relations_2__photo_1=photos['Parent']))
       .distinct()
    )
    assert queryset.mock_calls == chained.call_list()
    assert result is expected_result
 def test_filter_queryset_by_permissions_exception(self):
     queryset = MagicMock()
     user = MagicMock()
     divider = MagicMock()
     user.is_authenticated = MagicMock(return_value=True)
     user.is_superuser = False
     user.is_admin = False
     user.is_staff = False
     queryset.filter().distinct = MagicMock(side_effect=Exception)
     filter_queryset_by_permissions(queryset=queryset,
                                    user=user,
                                    divider=divider)
Exemple #13
0
    def setUp(self):
        # Create request mock
        self.request = MagicMock()
        self.request.user = MagicMock()
        self.request.user.is_staff = True

        # Create user mocks
        user_mock1 = MagicMock()
        user_mock1.username = '******'
        user_mock1.first_name = 'Test'
        user_mock1.last_name = 'user1'
        user_mock1.pk = '1122'
        user_mock1.is_staff = True

        user_mock2 = MagicMock()
        user_mock2.username = '******'
        user_mock2.first_name = 'Test'
        user_mock2.last_name = 'user2'
        user_mock2.is_staff = False
        self.user_mocks = {
            'user1': user_mock1,
            'user2': user_mock2,
        }
Exemple #14
0
    def setUp(self):
        # Create mock request
        user_object = MagicMock()
        user_object.is_staff = True
        user_object.userprofile.actor_id = 2

        self.request = MagicMock()
        self.request.user = user_object

        # Mock user
        views.User = MagicMock()
        views.User.objects.get = MagicMock()
        views.User.objects.get.return_value = user_object

        # Mock Userprofile
        views.UserProfile = FakeProfile()
        views.Organization = FakeOrganization()
Exemple #15
0
    def setUp(self):
        # Create request user mock
        user_object = MagicMock()
        user_object.username = '******'
        user_object.pk = '1111'
        user_object.is_staff = False
        self.request = MagicMock()
        self.request.user = user_object

        # Create organization mock
        self.org_object = MagicMock()
        self.org_object.name = 'test_org'
        self.org_object.managers = ['1111']
        self.org_object.payment_info = {
            'number': '4567456745674567'
        }
        views.Organization = MagicMock()
        views.Organization.objects.get.return_value = self.org_object
Exemple #16
0
def test_search_all():
    user = MagicMock(spec=auth_models.User)
    user.is_staff = True
    queryset = MagicMock(spec=QuerySet)

    expected_result = MagicMock(spec=QuerySet)
    (queryset
        .select_related.return_value
        .prefetch_related.return_value) = expected_result

    params = {}
    result = models.place.objects.get_search_queryset(user, queryset, params)

    chained = (
       call
       .select_related('cover_photo')
       .prefetch_related('cover_photo__photo_file_set')
    )
    assert queryset.mock_calls == chained.call_list()
    assert result is expected_result
Exemple #17
0
def test_search_children(places):
    user = MagicMock(spec=auth_models.User)
    user.is_staff = True
    queryset = MagicMock(spec=QuerySet)

    expected_result = MagicMock(spec=QuerySet)
    (queryset
        .select_related.return_value
        .prefetch_related.return_value
        .filter.return_value) = expected_result

    params = {'instance': places['Parent'].pk, 'mode': 'children'}
    result = models.place.objects.get_search_queryset(user, queryset, params)

    chained = (
       call
       .select_related('cover_photo')
       .prefetch_related('cover_photo__photo_file_set')
       .filter(parent=places['Parent'])
    )
    assert queryset.mock_calls == chained.call_list()
    assert result is expected_result
Exemple #18
0
def test_search_root_only():
    user = MagicMock(spec=auth_models.User)
    user.is_staff = True
    queryset = MagicMock(spec=QuerySet)

    expected_result = MagicMock(spec=QuerySet)
    (queryset
        .select_related.return_value
        .prefetch_related.return_value
        .filter.return_value) = expected_result

    params = {'root_only': True}
    result = models.album.objects.get_search_queryset(user, queryset, params)

    chained = (
       call
       .select_related('cover_photo')
       .prefetch_related('cover_photo__photo_file_set')
       .filter(parent__isnull=True)
    )
    assert queryset.mock_calls == chained.call_list()
    assert result is expected_result
Exemple #19
0
    def setUp(self):

        # Create mock request
        user_object = MagicMock()
        user_object.is_staff = False
        user_object.pk = '2222'
        user_object.userprofile.actor_id = 2
        user_object.username = '******'

        self.request = MagicMock()
        self.request.META.get.return_value = 'application/json'
        self.request.user = user_object

        # Mock user
        views.User = MagicMock()
        views.User.objects.get = MagicMock()
        views.User.objects.get.return_value = user_object

        views.Organization = MagicMock()
        self.org = MagicMock()
        self.org.name = 'test_org'
        self.org.managers = []
        views.Organization.objects.get.return_value = self.org
Exemple #20
0
    def setUp(self):

        # Create mock request
        user_object = MagicMock()
        user_object.is_staff = False
        user_object.pk = '2222'
        user_object.userprofile.actor_id = 2
        user_object.username = '******'

        self.request = MagicMock()
        self.request.META.get.return_value = 'application/json'
        self.request.user = user_object

        # Mock user
        views.User = MagicMock()
        views.User.objects.get = MagicMock()
        views.User.objects.get.return_value = user_object

        views.Organization = MagicMock()
        self.org = MagicMock()
        self.org.name = 'test_org'
        self.org.managers = []
        views.Organization.objects.get.return_value = self.org
Exemple #21
0
 def _mock_user(self, is_staff=True):
     mock_user = MagicMock()
     mock_user.is_active = True
     mock_user.is_staff = is_staff
     return mock_user