Пример #1
0
    def test_get__site_notification_multiple(self, SiteNotification):
        note1 = MagicMock(name='note1')
        note1._id = 'test1'
        note1.user_role = None
        note1.page_regex = 'this-will-not-match'
        note1.page_tool_type = None
        note1.impressions = 10
        note2 = MagicMock(name='note2')
        note2._id = 'test2'
        note2.user_role = None
        note2.page_regex = None
        note2.page_tool_type = None
        note2.impressions = 10
        note3 = MagicMock(name='note3')
        note3._id = 'test3'
        note3.user_role = None
        note3.page_regex = None
        note3.page_tool_type = None
        note3.impressions = 10
        SiteNotification.actives.return_value = [note1, note2, note3]
        get_note = ThemeProvider()._get_site_notification()

        assert isinstance(get_note, tuple)
        assert len(get_note) == 2
        assert_equal(get_note[0], note2)
        assert_equal(get_note[1], 'test2-1-False')

        # and with a cookie set
        get_note = ThemeProvider()._get_site_notification(
            site_notification_cookie_value='test2-3-True_test3-0-False')

        assert isinstance(get_note, tuple)
        assert len(get_note) == 2
        assert_equal(get_note[0], note3)
        assert_equal(get_note[1], 'test2-3-True_test3-1-False')
Пример #2
0
    def test_get_site_notification_with_role(self, SiteNotification, c):
        note = MagicMock()
        note.user_role = 'Test'
        note.page_regex = None
        note.page_tool_type = None
        note.impressions = 10
        SiteNotification.actives.return_value = [note]
        projects = c.user.my_projects_by_role_name

        c.user.is_anonymous.return_value = True
        assert_is(ThemeProvider().get_site_notification(), None)

        c.user.is_anonymous.return_value = False
        projects.return_value = []
        assert_is(ThemeProvider().get_site_notification(), None)

        projects.return_value = [Mock()]
        projects.return_value[0].is_user_project = True
        assert_is(ThemeProvider().get_site_notification(), None)

        projects.return_value[0].is_user_project = False
        assert_is(ThemeProvider().get_site_notification(), note)

        projects.projects.return_value = [Mock(), Mock()]
        assert_is(ThemeProvider().get_site_notification(), note)
Пример #3
0
    def test_get_site_notification_with_page_regex(self, SiteNotification, search):
        note = SiteNotification.current.return_value
        note.user_role = None
        note.page_regex = 'test'
        note.page_tool_type = None

        search.return_value = True
        assert_is(ThemeProvider().get_site_notification(), note)

        search.return_value = None
        assert_is(ThemeProvider().get_site_notification(), None)
Пример #4
0
    def test_get_site_notification_with_page_regex(self, SiteNotification,
                                                   search):
        note = MagicMock()
        note.user_role = None
        note.page_regex = 'test'
        note.page_tool_type = None
        note.impressions = 10
        SiteNotification.actives.return_value = [note]

        search.return_value = True
        assert_is(ThemeProvider().get_site_notification(), note)

        search.return_value = None
        assert_is(ThemeProvider().get_site_notification(), None)
Пример #5
0
    def test_get_site_notification_with_page_tool_type(self, SiteNotification):
        note = SiteNotification.current.return_value
        note.user_role = None
        note.page_regex = None
        c.app = Mock()
        note.page_tool_type.lower.return_value = 'test1'

        c.app.config.tool_name.lower.return_value = 'test1'
        assert_is(ThemeProvider().get_site_notification(), note)

        c.app.config.tool_name.lower.return_value = 'test2'
        assert_is(ThemeProvider().get_site_notification(), None)

        c.app = None
        assert_is(ThemeProvider().get_site_notification(), None)
Пример #6
0
 def test_get_site_notification_impressions_persistent(
         self, request, response, SiteNotification):
     note = SiteNotification.current.return_value
     note._id = 'deadbeef'
     note.impressions = 0
     request.cookies = {'site-notification': 'deadbeef-1000-false'}
     assert_is(ThemeProvider().get_site_notification(), note)
Пример #7
0
 def test_get_site_notification_impressions_over(self, request, response, SiteNotification):
     note = SiteNotification.current.return_value
     note._id = 'deadbeef'
     note.impressions = 2
     request.cookies = {'site-notification': 'deadbeef-3-false'}
     assert_is_none(ThemeProvider().get_site_notification())
     assert not response.set_cookie.called
Пример #8
0
 def test_get_site_notification_without_role(self, SiteNotification):
     note = MagicMock()
     note.user_role = None
     note.page_regex = None
     note.page_tool_type = None
     note.impressions = 10
     SiteNotification.actives.return_value = [note]
     assert_is(ThemeProvider().get_site_notification(), note)
Пример #9
0
 def test_get_site_notification_closed(self, request, response, SiteNotification):
     SiteNotification.current.return_value._id = 'deadbeef'
     SiteNotification.current.return_value.user_role = None
     SiteNotification.current.return_value.page_regex = None
     SiteNotification.current.return_value.page_tool_type = None
     request.cookies = {'site-notification': 'deadbeef-1-true'}
     assert_is_none(ThemeProvider().get_site_notification())
     assert not response.set_cookie.called
Пример #10
0
 def test_get_site_notification_bad_cookie(self, request, response, SiteNotification):
     note = SiteNotification.current.return_value
     note._id = 'deadbeef'
     note.impressions = 0
     request.cookies = {'site-notification': 'deadbeef-1000-true-bad'}
     assert_is(ThemeProvider().get_site_notification(), note)
     response.set_cookie.assert_called_once_with(
         'site-notification', 'deadbeef-1-False', max_age=dt.timedelta(days=365))
Пример #11
0
    def test_get_site_notification_with_page_tool_type(self, SiteNotification,
                                                       c):
        note = MagicMock()
        note.user_role = None
        note.page_regex = None
        note.page_tool_type.lower.return_value = 'test1'
        note.impressions = 10
        SiteNotification.actives.return_value = [note]
        c.app = Mock()
        c.app.config.tool_name.lower.return_value = 'test1'
        assert_is(ThemeProvider().get_site_notification(), note)

        c.app.config.tool_name.lower.return_value = 'test2'
        assert_is(ThemeProvider().get_site_notification(), None)

        c.app = None
        assert_is(ThemeProvider().get_site_notification(), None)
Пример #12
0
 def test_app_icon_app(self, g):
     class TestApp(Application):
         icons = {
             24: 'images/testapp_24.png',
         }
     app = TestApp(None, None)
     assert_equals(ThemeProvider().app_icon_url(app, 24),
                   g.theme_href.return_value)
     g.theme_href.assert_called_with('images/testapp_24.png')
Пример #13
0
 def test_app_icon_str(self, plugin_g, app_g):
     class TestApp(Application):
         icons = {
             24: 'images/testapp_24.png',
         }
     plugin_g.entry_points = {'tool': {'testapp': TestApp}}
     assert_equals(ThemeProvider().app_icon_url('testapp', 24),
                   app_g.theme_href.return_value)
     app_g.theme_href.assert_called_with('images/testapp_24.png')
Пример #14
0
 def test_get_site_notification_no_cookie(self, request, response, SiteNotification):
     note = SiteNotification.current.return_value
     note._id = 'deadbeef'
     note.impressions = 0
     note.user_role = None
     note.page_regex = None
     note.page_tool_type = None
     request.cookies = {}
     assert_is(ThemeProvider().get_site_notification(), note)
     response.set_cookie.assert_called_once_with(
         'site-notification', 'deadbeef-1-False', max_age=dt.timedelta(days=365))
Пример #15
0
 def test_get_site_notification_closed(self, request, response,
                                       SiteNotification):
     note = MagicMock()
     note._id = 'deadbeef'
     note.user_role = None
     note.page_regex = None
     note.page_tool_type = None
     SiteNotification.actives.return_value = [note]
     request.cookies = {'site-notification': 'deadbeef-1-true'}
     assert_is_none(ThemeProvider().get_site_notification())
     assert not response.set_cookie.called
Пример #16
0
 def test_get_site_notification_impressions_persistent(
         self, request, response, SiteNotification):
     note = MagicMock()
     note._id = 'deadbeef'
     note.impressions = 0
     note.user_role = None
     note.page_regex = None
     note.page_tool_type = None
     SiteNotification.actives.return_value = [note]
     request.cookies = {'site-notification': 'deadbeef-1000-false'}
     assert_is(ThemeProvider().get_site_notification(), note)
Пример #17
0
    def test_get__site_notification(self, SiteNotification):
        note = SiteNotification.current.return_value
        note._id = 'test_id'
        note.user_role = None
        note.page_regex = None
        note.page_tool_type = None
        get_note = ThemeProvider()._get_site_notification()

        assert isinstance(get_note, tuple)
        assert len(get_note) is 2
        assert get_note[0] is note
        assert get_note[1] == 'test_id-1-False'
Пример #18
0
    def test_get_site_notifications_with_api_cookie(self, request, SiteNotification):
        note = SiteNotification.current.return_value
        note._id = 'test_id'
        note.user_role = None
        note.page_regex = None
        note.page_tool_type = None
        request.cookies = {}
        get_note = ThemeProvider()._get_site_notification(
            site_notification_cookie_value='test_id-1-False'
        )

        assert get_note[0] is note
        assert get_note[1] == 'test_id-2-False'
Пример #19
0
    def test_get_site_notifications_with_api_cookie(self, SiteNotification):
        note = MagicMock()
        note._id = 'testid'
        note.user_role = None
        note.page_regex = None
        note.page_tool_type = None
        note.impressions = 10
        SiteNotification.actives.return_value = [note]
        get_note = ThemeProvider()._get_site_notification(
            site_notification_cookie_value='testid-1-False')

        assert get_note[0] is note
        assert get_note[1] == 'testid-2-False'
Пример #20
0
    def test_get__site_notification(self, SiteNotification):
        note = MagicMock()
        note._id = 'testid'
        note.user_role = None
        note.page_regex = None
        note.page_tool_type = None
        note.impressions = 10
        SiteNotification.actives.return_value = [note]
        get_note = ThemeProvider()._get_site_notification()

        assert isinstance(get_note, tuple)
        assert len(get_note) == 2
        assert get_note[0] is note
        assert get_note[1] == 'testid-1-False'
Пример #21
0
    def test_get_site_notification_with_role(self, SiteNotification, User):
        note = SiteNotification.current.return_value
        note.user_role = 'Test'
        note.page_regex = None
        note.page_tool_type = None
        projects = User.my_projects_by_role_name

        User.is_anonymous.return_value = True
        assert_is(ThemeProvider().get_site_notification(), None)

        User.is_anonymous.return_value = False
        projects.return_value = []
        assert_is(ThemeProvider().get_site_notification(), None)

        projects.return_value = [Mock()]
        projects.return_value[0].is_user_project = True
        assert_is(ThemeProvider().get_site_notification(), None)

        projects.return_value[0].is_user_project = False
        assert_is(ThemeProvider().get_site_notification(), note)

        projects.projects.return_value = [Mock(), Mock()]
        assert_is(ThemeProvider().get_site_notification(), note)
Пример #22
0
 def test_get_site_notification_bad_cookie(self, request, response,
                                           SiteNotification):
     note = MagicMock()
     note._id = 'deadbeef'
     note.impressions = 0
     note.user_role = None
     note.page_regex = None
     note.page_tool_type = None
     SiteNotification.actives.return_value = [note]
     request.cookies = {'site-notification': 'deadbeef-1000-true-bad'}
     assert_is(ThemeProvider().get_site_notification(), note)
     response.set_cookie.assert_called_once_with(
         'site-notification',
         'deadbeef-1-False',
         max_age=dt.timedelta(days=365))
Пример #23
0
    def test_get_site_notification_new_notification(self, request, response,
                                                    SiteNotification):
        note = MagicMock()
        note._id = 'deadbeef'
        note.impressions = 1
        note.user_role = None
        note.page_regex = None
        note.page_tool_type = None
        SiteNotification.actives.return_value = [note]
        request.cookies = {'site-notification': '0ddba11-1000-true'}
        request.environ['beaker.session'].secure = False

        assert_is(ThemeProvider().get_site_notification(), note)
        response.set_cookie.assert_called_once_with(
            'site-notification',
            'deadbeef-1-False',
            max_age=dt.timedelta(days=365),
            secure=False)
Пример #24
0
 def test_get_site_notification_without_role(self, SiteNotification):
     note = SiteNotification.current.return_value
     note.user_role = None
     note.page_regex = None
     note.page_tool_type = None
     assert_is(ThemeProvider().get_site_notification(), note)
Пример #25
0
 def test_get_site_notification_no_note(self, request, response, SiteNotification):
     SiteNotification.current.return_value = None
     assert_is_none(ThemeProvider().get_site_notification())
     assert not response.set_cookie.called
Пример #26
0
 def test_app_icon_str_invalid(self, g):
     g.entry_points = {'tool': {'testapp': Mock()}}
     assert_equals(ThemeProvider().app_icon_url('invalid', 24),
                   None)