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')
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)
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)
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)
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)
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)
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
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)
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
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))
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)
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')
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')
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))
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
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)
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'
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'
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'
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'
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)
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))
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)
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)
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
def test_app_icon_str_invalid(self, g): g.entry_points = {'tool': {'testapp': Mock()}} assert_equals(ThemeProvider().app_icon_url('invalid', 24), None)