Пример #1
0
 def test_getCache_anonymous_obfuscated(self):
     request = LaunchpadTestRequest()
     branch = self.factory.makeBranch(name='user@domain')
     login_as(None)
     view = LaunchpadView(branch, request)
     self.assertIs(None, view.user)
     self.assertNotIn('user@domain', view.getCacheJSON())
Пример #2
0
 def test_getCacheJSON_non_resource_object(self):
     request = LaunchpadTestRequest()
     view = LaunchpadView(object(), request)
     IJSONRequestCache(request).objects['my_bool'] = True
     with person_logged_in(self.factory.makePerson()):
         self.assertEqual('{"related_features": {}, "my_bool": true}',
                          view.getCacheJSON())
Пример #3
0
 def test_getCacheJSON_context_overrides_objects(self):
     request = LaunchpadTestRequest()
     view = LaunchpadView(self.getCanada(), request)
     IJSONRequestCache(request).objects['context'] = True
     with person_logged_in(self.factory.makePerson()):
         json_dict = simplejson.loads(view.getCacheJSON())['context']
     self.assertIsCanada(json_dict)
Пример #4
0
 def test_getCacheJSON_resource_object(self):
     request = LaunchpadTestRequest()
     view = LaunchpadView(object(), request)
     IJSONRequestCache(request).objects['country'] = self.getCanada()
     with person_logged_in(self.factory.makePerson()):
         json_dict = simplejson.loads(view.getCacheJSON())['country']
     self.assertIsCanada(json_dict)
Пример #5
0
 def test_getCacheJSON_resource_object(self):
     request = LaunchpadTestRequest()
     view = LaunchpadView(object(), request)
     IJSONRequestCache(request).objects['country'] = self.getCanada()
     with person_logged_in(self.factory.makePerson()):
         json_dict = simplejson.loads(view.getCacheJSON())['country']
     self.assertIsCanada(json_dict)
Пример #6
0
 def test_getCacheJSON_context_overrides_objects(self):
     request = LaunchpadTestRequest()
     view = LaunchpadView(self.getCanada(), request)
     IJSONRequestCache(request).objects['context'] = True
     with person_logged_in(self.factory.makePerson()):
         json_dict = simplejson.loads(view.getCacheJSON())['context']
     self.assertIsCanada(json_dict)
Пример #7
0
 def test_active_related_features__enabled_feature(self):
     # If a view has a non-empty sequence of related feature flags and if
     # only a non-default scope is defined and active, the property
     # active_related_features contains this feature flag.
     self.useFixture(FeatureFixture(
         {},
         (
             {
                 u'flag': u'test_feature',
                 u'scope': u'pageid:foo',
                 u'priority': 0,
                 u'value': u'on',
                 },
             ),
         override_scope_lookup=lambda scope_name: True))
     request = LaunchpadTestRequest()
     view = LaunchpadView(object(), request)
     view.related_features = ['test_feature']
     self.assertEqual({
         'test_feature': {
             'is_beta': True,
             'title': 'title',
             'url': 'http://wiki.lp.dev/LEP/sample',
             'value': 'on'}
         },
         view.related_feature_info)
Пример #8
0
 def test_getCache_anonymous_obfuscated(self):
     request = LaunchpadTestRequest()
     branch = self.factory.makeBranch(name='user@domain')
     login_as(None)
     view = LaunchpadView(branch, request)
     self.assertIs(None, view.user)
     self.assertNotIn('user@domain', view.getCacheJSON())
Пример #9
0
 def test_getCache_anonymous(self):
     request = LaunchpadTestRequest()
     view = LaunchpadView(self.getCanada(), request)
     self.assertIs(None, view.user)
     IJSONRequestCache(request).objects['my_bool'] = True
     json_dict = simplejson.loads(view.getCacheJSON())
     self.assertIsCanada(json_dict['context'])
     self.assertIn('my_bool', json_dict)
Пример #10
0
 def test_getCacheJSON_non_resource_object(self):
     request = LaunchpadTestRequest()
     view = LaunchpadView(object(), request)
     IJSONRequestCache(request).objects['my_bool'] = True
     with person_logged_in(self.factory.makePerson()):
         self.assertEqual(
             '{"related_features": {}, "my_bool": true}',
             view.getCacheJSON())
Пример #11
0
 def test_getCache_anonymous(self):
     request = LaunchpadTestRequest()
     view = LaunchpadView(self.getCanada(), request)
     self.assertIs(None, view.user)
     IJSONRequestCache(request).objects['my_bool'] = True
     json_dict = simplejson.loads(view.getCacheJSON())
     self.assertIsCanada(json_dict['context'])
     self.assertIn('my_bool', json_dict)
Пример #12
0
 def test_isRedirected_status_codes(self):
     request = LaunchpadTestRequest()
     view = LaunchpadView(object(), request)
     for code in view.REDIRECTED_STATUSES:
         request.response.setStatus(code)
         self.assertTrue(view._isRedirected())
     for code in [100, 200, 403, 404, 500]:
         request.response.setStatus(code)
         self.assertFalse(view._isRedirected())
Пример #13
0
 def test_isRedirected_status_codes(self):
     request = LaunchpadTestRequest()
     view = LaunchpadView(object(), request)
     for code in view.REDIRECTED_STATUSES:
         request.response.setStatus(code)
         self.assertTrue(view._isRedirected())
     for code in [100, 200, 403, 404, 500]:
         request.response.setStatus(code)
         self.assertFalse(view._isRedirected())
Пример #14
0
    def test_view_privacy(self):
        # View privacy is based on the context.
        @implementer(IPrivacy)
        class PrivateObject(object):
            def __init__(self, private):
                self.private = private

        view = LaunchpadView(PrivateObject(True), FakeRequest())
        self.assertTrue(view.private)

        view = LaunchpadView(PrivateObject(False), FakeRequest())
        self.assertFalse(view.private)
Пример #15
0
    def test_related_feature_info__enabled_feature_with_default_same_value(
            self):
        # If a view
        #   * has a non-empty sequence of related feature flags,
        #   * the default scope and a non-default scope are defined
        #     and have the same values,
        # then is_beta is false.
        # Unless related_features forces it to always be beta, and the
        # flag is set.
        self.useFixture(
            FeatureFixture({},
                           self.makeFeatureFlagDictionaries(u'on', u'on'),
                           override_scope_lookup=lambda scope_name: True))
        request = LaunchpadTestRequest()
        view = LaunchpadView(object(), request)
        view.related_features = {'test_feature': False}
        self.assertEqual(
            {
                'test_feature': {
                    'is_beta': False,
                    'title': 'title',
                    'url': 'http://wiki.lp.dev/LEP/sample',
                    'value': 'on',
                }
            }, view.related_feature_info)

        view.related_features['test_feature'] = True
        self.assertEqual(
            {
                'test_feature': {
                    'is_beta': True,
                    'title': 'title',
                    'url': 'http://wiki.lp.dev/LEP/sample',
                    'value': 'on',
                }
            }, view.related_feature_info)

        self.useFixture(
            FeatureFixture({},
                           self.makeFeatureFlagDictionaries(u'on', u''),
                           override_scope_lookup=lambda scope_name: True))
        self.assertEqual(
            {
                'test_feature': {
                    'is_beta': False,
                    'title': 'title',
                    'url': 'http://wiki.lp.dev/LEP/sample',
                    'value': '',
                }
            }, view.related_feature_info)
Пример #16
0
 def test_related_feature_info__with_related_feature_nothing_enabled(self):
     # If a view has a non-empty sequence of related feature flags but if
     # no matching feature rules are defined, is_beta is False.
     request = LaunchpadTestRequest()
     view = LaunchpadView(object(), request)
     view.related_features = ['test_feature']
     self.assertEqual({
         'test_feature': {
             'is_beta': False,
             'title': 'title',
             'url': 'http://wiki.lp.dev/LEP/sample',
             'value': None,
         }
     }, view.related_feature_info)
Пример #17
0
 def test_related_feature_info__enabled_feature_with_default_same_value(
     self):
     # If a view
     #   * has a non-empty sequence of related feature flags,
     #   * the default scope and a non-default scope are defined
     #     and have the same values,
     # then is_beta is false.
     self.useFixture(FeatureFixture(
         {}, self.makeFeatureFlagDictionaries(u'on', u'on'),
         override_scope_lookup=lambda scope_name: True))
     request = LaunchpadTestRequest()
     view = LaunchpadView(object(), request)
     view.related_features = ['test_feature']
     self.assertEqual({'test_feature': {
         'is_beta': False,
         'title': 'title',
         'url': 'http://wiki.lp.dev/LEP/sample',
         'value': 'on',
     }}, view.related_feature_info)
Пример #18
0
 def test_related_features__enabled_feature_with_default(self):
     # If a view
     #   * has a non-empty sequence of related feature flags,
     #   * the default scope and a non-default scope are defined
     #     but have different values,
     # then the property related_feature_info contains this feature flag.
     self.useFixture(FeatureFixture(
         {}, self.makeFeatureFlagDictionaries(u'', u'on'),
         override_scope_lookup=lambda scope_name: True))
     request = LaunchpadTestRequest()
     view = LaunchpadView(object(), request)
     view.related_features = ['test_feature']
     self.assertEqual({
         'test_feature': {
             'is_beta': True,
             'title': 'title',
             'url': 'http://wiki.lp.dev/LEP/sample',
             'value': 'on',
         }},
         view.related_feature_info)
Пример #19
0
 def test_related_feature_info__default_scope_only(self):
     # If a view has a non-empty sequence of related feature flags but if
     # only a default scope is defined, it is not considered beta.
     self.useFixture(
         FeatureFixture({}, ({
             u'flag': u'test_feature',
             u'scope': u'default',
             u'priority': 0,
             u'value': u'on',
         }, )))
     request = LaunchpadTestRequest()
     view = LaunchpadView(object(), request)
     view.related_features = {'test_feature': False}
     self.assertEqual(
         {
             'test_feature': {
                 'is_beta': False,
                 'title': 'title',
                 'url': 'http://wiki.lp.dev/LEP/sample',
                 'value': 'on',
             }
         }, view.related_feature_info)
Пример #20
0
 def test_related_feature_info__default_scope_only(self):
     # If a view has a non-empty sequence of related feature flags but if
     # only a default scope is defined, it is not considered beta.
     self.useFixture(FeatureFixture(
         {},
         (
             {
                 u'flag': u'test_feature',
                 u'scope': u'default',
                 u'priority': 0,
                 u'value': u'on',
                 },
             )))
     request = LaunchpadTestRequest()
     view = LaunchpadView(object(), request)
     view.related_features = ['test_feature']
     self.assertEqual({'test_feature': {
         'is_beta': False,
         'title': 'title',
         'url': 'http://wiki.lp.dev/LEP/sample',
         'value': 'on',
     }}, view.related_feature_info)
Пример #21
0
 def __init__(self, context, request):
     LaunchpadView.__init__(self, context, request)
     self.errors = []
     self.form_wide_errors = []
     self.widget_errors = {}
Пример #22
0
 def test_getCacheJSON_resource_context(self):
     view = LaunchpadView(self.getCanada(), LaunchpadTestRequest())
     json_dict = simplejson.loads(view.getCacheJSON())['context']
     self.assertIsCanada(json_dict)
Пример #23
0
 def test_getCacheJSON_non_resource_context(self):
     view = LaunchpadView(object(), LaunchpadTestRequest())
     self.assertEqual('{"related_features": {}}', view.getCacheJSON())
Пример #24
0
 def test_view_creation_with_fake_or_none_request(self):
     # LaunchpadView.__init__() does not crash with a FakeRequest.
     LaunchpadView(object(), FakeRequest())
     # Or when no request at all is passed.
     LaunchpadView(object(), None)
Пример #25
0
 def test_related_feature_info__default(self):
     # By default, LaunchpadView.related_feature_info is empty.
     request = LaunchpadTestRequest()
     view = LaunchpadView(object(), request)
     self.assertEqual(0, len(view.related_feature_info))
Пример #26
0
 def __init__(self, context, request):
     LaunchpadView.__init__(self, context, request)
     self.errors = []
     self.form_wide_errors = []
     self.widget_errors = {}
Пример #27
0
 def test_getCacheJSON_non_resource_context(self):
     view = LaunchpadView(object(), LaunchpadTestRequest())
     self.assertEqual('{"related_features": {}}', view.getCacheJSON())
Пример #28
0
 def test_getCacheJSON_resource_context(self):
     view = LaunchpadView(self.getCanada(), LaunchpadTestRequest())
     json_dict = simplejson.loads(view.getCacheJSON())['context']
     self.assertIsCanada(json_dict)
Пример #29
0
 def render(self):
     if self.context.currentBatch():
         return LaunchpadView.render(self)
     return u""
Пример #30
0
 def render(self):
     if self.context.currentBatch():
         return LaunchpadView.render(self)
     return u""