Example #1
0
 def profile_qs(self, disabled_features=None):
     if disabled_features is None:
         disabled_features = {}
     profile = FeatureProfile().fromkeys(FeatureProfile(), True)
     for feature in disabled_features:
         profile[feature] = False
     return {'pro': profile.to_signature(), 'dev': 'firefoxos'}
Example #2
0
 def test_feature_compatibility_no_current_version(self):
     self.app._current_version = None
     feature_profile = FeatureProfile(apps=True, nfc=True, mobileid=True)
     self.request = RequestFactory().get('/?dev=firefoxos&pro=%s' %
                                         feature_profile.to_signature())
     res = self.serialize(self.app)
     eq_(res['feature_compatibility'], None)
Example #3
0
 def test_feature_compatibility_false(self):
     self.app.current_version.features.update(has_apps=True, has_nfc=True)
     feature_profile = FeatureProfile(apps=False, nfc=True, mobileid=True)
     self.request = RequestFactory().get('/?dev=firefoxos&pro=%s' %
                                         feature_profile.to_signature())
     res = self.serialize(self.app)
     eq_(res['feature_compatibility'], False)
Example #4
0
 def setUp(self):
     self.collection = Collection.objects.create(**self.collection_data)
     self.app = amo.tests.app_factory()
     self.collection.add_app(self.app)
     self.field = CollectionMembershipField()
     self.membership = CollectionMembership.objects.all()[0]
     self.request = RequestFactory()
     self.profile = FeatureProfile(apps=True).to_signature()
Example #5
0
 def setUp(self):
     self.collection = Collection.objects.create(**self.collection_data)
     self.app = amo.tests.app_factory()
     self.app.addondevicetype_set.get_or_create(
         device_type=amo.DEVICE_GAIA.id)
     self.collection.add_app(self.app, order=1)
     self.field = CollectionMembershipField()
     self.field.context = {}
     self.membership = CollectionMembership.objects.all()[0]
     self.profile = FeatureProfile(apps=True).to_signature()
Example #6
0
 def setUp(self):
     super(BaseFeaturedTests, self).setUp()
     self.cat = Category.objects.create(type=amo.ADDON_WEBAPP, slug='shiny')
     self.app = Webapp.objects.get(pk=337141)
     AddonDeviceType.objects.create(
         addon=self.app, device_type=DEVICE_CHOICES_IDS['firefoxos'])
     AddonCategory.objects.get_or_create(addon=self.app, category=self.cat)
     self.profile = FeatureProfile(apps=True, audio=True, fullscreen=True,
                                   geolocation=True, indexeddb=True,
                                   sms=True).to_signature()
     self.qs = {'cat': 'shiny', 'pro': self.profile, 'dev': 'firefoxos'}
Example #7
0
 def setUp(self):
     self.client = RestOAuthClient(None)
     self.url = reverse('search-api')
     self.webapp = Webapp.objects.get(pk=337141)
     self.category = Category.objects.create(name='test',
                                             type=amo.ADDON_WEBAPP)
     # Pick a few common device features.
     self.profile = FeatureProfile(apps=True, audio=True, fullscreen=True,
                                   geolocation=True, indexeddb=True,
                                   sms=True).to_signature()
     self.qs = {'q': 'something', 'pro': self.profile, 'dev': 'firefoxos'}
Example #8
0
 def setUp(self):
     super(TestFeaturedNoCategories, self).setUp(api_name='fireplace')
     self.create_switch('buchets')
     self.cat = Category.objects.create(type=amo.ADDON_WEBAPP, slug='shiny')
     self.app = Webapp.objects.get(pk=337141)
     AddonCategory.objects.get_or_create(addon=self.app, category=self.cat)
     self.make_featured(app=self.app, category=None, region=mkt.regions.US)
     self.profile = FeatureProfile(apps=True, audio=True, fullscreen=True,
                                   geolocation=True, indexeddb=True,
                                   sms=True).to_signature()
     self.qs = {'pro': self.profile, 'dev': 'firefoxos'}
Example #9
0
 def test_feature_compatibility_always_none(self):
     # ES is already filtering by feature profile for us, so it does not
     # make much sense to check for feature compatibility in ES serializer.
     self.app.current_version.features.update(has_apps=True, has_nfc=True)
     self.reindex(Webapp)
     feature_profile = FeatureProfile(apps=False, nfc=True, mobileid=True)
     self.request = RequestFactory().get('/?dev=firefoxos&pro=%s' %
                                         feature_profile.to_signature())
     self.request.REGION = mkt.regions.USA
     self.request.user = self.profile
     res = self.serialize()
     eq_(res['feature_compatibility'], None)
Example #10
0
 def setUp(self):
     self.client = RestOAuthClient(None)
     self.url = reverse('search-api')
     self.webapp = Webapp.objects.get(pk=337141)
     self.webapp.addondevicetype_set.create(device_type=amo.DEVICE_GAIA.id)
     # Pick a few common device features.
     self.profile = FeatureProfile(apps=True,
                                   audio=True,
                                   fullscreen=True,
                                   geolocation=True,
                                   indexeddb=True,
                                   sms=True).to_signature()
     self.qs = {'q': 'something', 'pro': self.profile, 'dev': 'firefoxos'}
Example #11
0
    def test_no_feature_profile_filtering(self):
        feature_profile = FeatureProfile().to_signature()
        qs = {'q': 'something', 'pro': feature_profile, 'dev': 'firefoxos'}

        # Enable an app feature that doesn't match one in our profile.
        self.webapp.current_version.features.update(has_pay=True)
        self.webapp.save()
        self.refresh('webapp')

        res = self.client.get(self.url, qs)
        eq_(res.status_code, 200)
        eq_(len(res.json['objects']), 1)
        obj = res.json['objects'][0]
        eq_(obj['slug'], self.webapp.app_slug)
Example #12
0
 def setUp(self):
     super(BaseFeaturedTests, self).setUp()
     self.cat = 'books'
     self.app = Webapp.objects.get(pk=337141)
     AddonDeviceType.objects.create(
         addon=self.app, device_type=DEVICE_CHOICES_IDS['firefoxos'])
     self.app.update(categories=[self.cat])
     self.profile = FeatureProfile(apps=True,
                                   audio=True,
                                   fullscreen=True,
                                   geolocation=True,
                                   indexeddb=True,
                                   sms=True).to_signature()
     self.qs = {'cat': self.cat, 'pro': self.profile, 'dev': 'firefoxos'}
Example #13
0
 def test_init(self):
     profile = FeatureProfile(**dict((f, True) for f in self.truths))
     eq_(profile.to_signature(), self.signature)
     eq_(profile.to_int(), self.features)
Example #14
0
 def test_with_profile(self):
     profile = FeatureProfile(apps=True).to_signature()
     res = self.anon.get(self.url, {'pro': profile})
     self._test_response(res)
     eq_(res.json['apps']['present'], True)
     eq_(res.json['audio']['present'], False)
Example #15
0
 def setUp(self):
     super(TestLoadFeatureProfile, self).setUp()
     self.profile = FeatureProfile(apps=True)
     self.signature = self.profile.to_signature()