Ejemplo n.º 1
0
def test_add_report_to_db_translation_none():
    """
        This should raise HTTPNotFound as translation is None.
    """
    with mock.patch('annotran.languages.models.Language') as language:
        language.get_by_public_language_id = MagicMock(return_value=language)

        with mock.patch('annotran.pages.models.Page') as page:
            page.get_by_uri = MagicMock(return_value=page)

            with mock.patch('h.groups.models.Group') as group:
                group.get_by_pubid = MagicMock(return_value=group)

                with mock.patch('h.models.User') as user:
                    user.get_by_username = MagicMock(return_value=user)

                    with mock.patch('annotran.translations.models.Translation') as translation:
                        translation.get_translation = MagicMock(return_value=None)

                        request = _mock_request(authenticated_user=mock.Mock(username="******"),
                                                matchdict={'public_language_id': '12345',
                                                           'public_group_id': '12345',
                                                           'user_id': '12345',
                                                           'page_uri': 'http://www.annotran_test.com/'})
                        with pytest.raises(exc.HTTPNotFound):
                            views.add_report(request)
Ejemplo n.º 2
0
def test_add_report_to_db_translation_none():
    """
        This should raise HTTPNotFound as translation is None.
    """
    with mock.patch('annotran.languages.models.Language') as language:
        language.get_by_public_language_id = MagicMock(return_value=language)

        with mock.patch('annotran.pages.models.Page') as page:
            page.get_by_uri = MagicMock(return_value=page)

            with mock.patch('h.groups.models.Group') as group:
                group.get_by_pubid = MagicMock(return_value=group)

                with mock.patch('h.models.User') as user:
                    user.get_by_username = MagicMock(return_value=user)

                    with mock.patch('annotran.translations.models.Translation'
                                    ) as translation:
                        translation.get_translation = MagicMock(
                            return_value=None)

                        request = _mock_request(
                            authenticated_user=mock.Mock(username="******"),
                            matchdict={
                                'public_language_id': '12345',
                                'public_group_id': '12345',
                                'user_id': '12345',
                                'page_uri': 'http://www.annotran_test.com/'
                            })
                        with pytest.raises(exc.HTTPNotFound):
                            views.add_report(request)
Ejemplo n.º 3
0
def test_add_report_to_db_pg_auth_rep_group_lang_none():
    """
        This should raise HTTPNotFound as all page, author, reporter, group, and language is None.
    """
    request = _mock_request(authenticated_user=mock.Mock(username="******"),
                            matchdict={'public_language_id': '12345',
                                       'public_group_id': '12345',
                                       'user_id': '12345',
                                       'page_uri': 'http://www.annotran_test.com/'})
    with pytest.raises(exc.HTTPNotFound):
        views.add_report(request)
Ejemplo n.º 4
0
def test_add_report_to_db_pg_auth_rep_group_lang_none():
    """
        This should raise HTTPNotFound as all page, author, reporter, group, and language is None.
    """
    request = _mock_request(authenticated_user=mock.Mock(username="******"),
                            matchdict={
                                'public_language_id': '12345',
                                'public_group_id': '12345',
                                'user_id': '12345',
                                'page_uri': 'http://www.annotran_test.com/'
                            })
    with pytest.raises(exc.HTTPNotFound):
        views.add_report(request)
Ejemplo n.º 5
0
def test_add_existing_report_to_db():
    """
        This should not add a new report to the database session as the one already exists.
    """
    with mock.patch('annotran.languages.models.Language') as language:
        language.get_by_public_language_id = MagicMock(return_value=language)

        with mock.patch('annotran.pages.models.Page') as page:
            page.get_by_uri = MagicMock(return_value=page)

            with mock.patch('h.groups.models.Group') as group:
                group.get_by_pubid = MagicMock(return_value=group)

                with mock.patch('h.models.User') as user:
                    user.get_by_username = MagicMock(return_value=user)

                    with mock.patch('annotran.translations.models.Translation') as translation:
                        translation.get_translation = MagicMock(return_value=translation)

                        with mock.patch('annotran.reports.models.Report') as report:
                            report.get_report = MagicMock(return_value=report)

                            request = _mock_request(authenticated_user=mock.Mock(username="******"),
                                                    matchdict={'public_language_id': '12345',
                                                               'public_group_id': '12345',
                                                               'user_id': '12345',
                                                               'page_uri': 'http://www.annotran_test.com/'})
                            result = views.add_report(request)
                            assert not request.db.add.called
                            assert isinstance(result, exc.HTTPBadRequest)
Ejemplo n.º 6
0
def test_add_report_to_db():
    """
        This should add a new report to the database session.
        After successfully creating a new report it should redirect.
    """
    with mock.patch('annotran.languages.models.Language') as language:
        language.get_by_public_language_id = MagicMock(return_value=language)

        with mock.patch('annotran.pages.models.Page') as page:
            page.get_by_uri = MagicMock(return_value=page)

            with mock.patch('h.groups.models.Group') as group:
                group.get_by_pubid = MagicMock(return_value=group)

                with mock.patch('h.models.User') as user:
                    propUser = PropertyMock(return_value=2897)
                    type(user).id = propUser
                    user.get_by_username = MagicMock(return_value=user)

                    with mock.patch('annotran.translations.models.Translation'
                                    ) as translation:
                        propPage = PropertyMock(return_value=2897)
                        type(translation).page_id = propPage

                        propLang = PropertyMock(return_value=2897)
                        type(translation).language_id = propLang

                        propGroup = PropertyMock(return_value=2897)
                        type(translation).group_id = propGroup

                        translation.get_translation = MagicMock(
                            return_value=translation)

                        request = _mock_request(
                            authenticated_user=mock.Mock(username="******"),
                            matchdict={
                                'public_language_id': '12345',
                                'public_group_id': '12345',
                                'user_id': '12345',
                                'page_uri': 'http://www.annotran_test.com/'
                            })
                        result = views.add_report(request)
                        request.db.add.assert_called_once()
                        assert result == {}
Ejemplo n.º 7
0
def test_add_report_to_db():
    """
        This should add a new report to the database session.
        After successfully creating a new report it should redirect.
    """
    with mock.patch('annotran.languages.models.Language') as language:
        language.get_by_public_language_id = MagicMock(return_value=language)

        with mock.patch('annotran.pages.models.Page') as page:
            page.get_by_uri = MagicMock(return_value=page)

            with mock.patch('h.groups.models.Group') as group:
                group.get_by_pubid = MagicMock(return_value=group)

                with mock.patch('h.models.User') as user:
                    propUser = PropertyMock(return_value=2897)
                    type(user).id = propUser
                    user.get_by_username = MagicMock(return_value=user)

                    with mock.patch('annotran.translations.models.Translation') as translation:
                        propPage = PropertyMock(return_value=2897)
                        type(translation).page_id = propPage

                        propLang = PropertyMock(return_value=2897)
                        type(translation).language_id = propLang

                        propGroup = PropertyMock(return_value=2897)
                        type(translation).group_id = propGroup

                        translation.get_translation = MagicMock(return_value=translation)

                        request = _mock_request(authenticated_user=mock.Mock(username="******"),
                                                matchdict={'public_language_id': '12345',
                                                           'public_group_id': '12345',
                                                           'user_id': '12345',
                                                           'page_uri': 'http://www.annotran_test.com/'})
                        result = views.add_report(request)
                        request.db.add.assert_called_once()
                        assert result == {}
Ejemplo n.º 8
0
def test_add_existing_report_to_db():
    """
        This should not add a new report to the database session as the one already exists.
    """
    with mock.patch('annotran.languages.models.Language') as language:
        language.get_by_public_language_id = MagicMock(return_value=language)

        with mock.patch('annotran.pages.models.Page') as page:
            page.get_by_uri = MagicMock(return_value=page)

            with mock.patch('h.groups.models.Group') as group:
                group.get_by_pubid = MagicMock(return_value=group)

                with mock.patch('h.models.User') as user:
                    user.get_by_username = MagicMock(return_value=user)

                    with mock.patch('annotran.translations.models.Translation'
                                    ) as translation:
                        translation.get_translation = MagicMock(
                            return_value=translation)

                        with mock.patch(
                                'annotran.reports.models.Report') as report:
                            report.get_report = MagicMock(return_value=report)

                            request = _mock_request(
                                authenticated_user=mock.Mock(username="******"),
                                matchdict={
                                    'public_language_id': '12345',
                                    'public_group_id': '12345',
                                    'user_id': '12345',
                                    'page_uri': 'http://www.annotran_test.com/'
                                })
                            result = views.add_report(request)
                            assert not request.db.add.called
                            assert isinstance(result, exc.HTTPBadRequest)