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'}
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)
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)
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()
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()
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'}
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'}
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'}
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)
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'}
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)
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'}
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)
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)
def setUp(self): super(TestLoadFeatureProfile, self).setUp() self.profile = FeatureProfile(apps=True) self.signature = self.profile.to_signature()