def test_keywords(self): website_factory() self.website.keywords.add(Tag.objects.create(tag_text='hodor')) self.website.keywords.add(Tag.objects.create(tag_text='radar')) self.website.save() self.refresh('website') res = self.anon.get(self.url, data={'q': 'hodor'}) eq_(res.status_code, 200) objs = res.json['objects'] eq_(len(objs), 1) eq_(sorted(objs[0]['keywords']), sorted(['hodor', 'radar']))
def test_q_relevency(self): # Add 2 websites - the last one has 'something' appearing in both its # title and its description, so it should be booster and appear higher # in the results. website_factory(title='something') boosted_website = website_factory(title='something', description='something') self._reindex() res = self.anon.get(self.url, data={'q': 'something'}) eq_(res.status_code, 200) eq_(len(res.json['objects']), 3) obj = res.json['objects'][0] eq_(obj['id'], boosted_website.pk)
def test_q_relevancy(self): # Add 2 websites - the last one has 'something' appearing in both its # title and its description, so it should be booster and appear higher # in the results. website_factory(title='something') boosted_website = website_factory(title='something', description='something') self.reindex(Website) res = self.anon.get(self.url, data={'q': 'something'}) eq_(res.status_code, 200) eq_(len(res.json['objects']), 3) obj = res.json['objects'][0] eq_(obj['id'], boosted_website.pk)
def test_search_ordering_relevancy(self): website1 = website_factory( name='Blah', description='Blah', devices=[mkt.DEVICE_TV.id]) website2 = website_factory(name='Blah', devices=[mkt.DEVICE_TV.id], tv_featured=1) website3 = website_factory(name='Blah', devices=[mkt.DEVICE_TV.id]) self.reindex(Website) self.reindex(Webapp) url = reverse('tv-multi-search-api') res = self.client.get(url, {'q': 'blah'}) objects = res.json['objects'] eq_(len(objects), 3) eq_(objects[0]['id'], website2.pk) eq_(objects[1]['id'], website1.pk) eq_(objects[2]['id'], website3.pk)
def setUp(self): super(TestWebsiteReviewerActions, self).setUp() self.website = website_factory( title='something', categories=json.dumps(['books', 'sports'])) self.user = UserProfile.objects.get(pk=2519) self.grant_permission(self.user, 'Websites:Review')
def _create_group_of_games(self): content = [app_factory(), website_factory(), app_factory(), website_factory()] # Add tags. for i, cat in enumerate(GAME_CATEGORIES): tag = Tag.objects.get_or_create(tag_text=GAME_CATEGORIES[i])[0] if hasattr(content[i], 'tags'): content[i].tags.add(tag) else: content[i].keywords.add(tag) self.reindex(Webapp) self.reindex(Website) self.refresh(('webapp', 'website')) return content
def test_extract_with_translations(self): self.obj = website_factory() title = { 'en-US': u'Site Tîtle', 'fr': u'Titrè du sïte', } self.obj.title = title name = { 'en-US': u'Namé Site', 'fr': u'Nom du sïte', } self.obj.name = name self.obj.save() doc = self._get_doc() eq_(sorted(doc['title']), [title['en-US'], title['fr']]) eq_(sorted(doc['title_translations']), [{'lang': 'en-US', 'string': title['en-US']}, {'lang': 'fr', 'string': title['fr']}]) eq_(sorted(doc['name']), [name['en-US'], name['fr']]) eq_(sorted(doc['name_translations']), [{'lang': 'en-US', 'string': name['en-US']}, {'lang': 'fr', 'string': name['fr']}]) eq_(doc['name_l10n_french'], [name['fr']]) eq_(doc['name_l10n_english'], [name['en-US']]) eq_(doc['name_sort'], name['en-US'].lower())
def test_extract_with_translations(self): self.obj = website_factory() title = { 'en-US': u'Site Tîtle', 'fr': u'Titrè du sïte', } self.obj.title = title name = { 'en-US': u'Namé Site', 'fr': u'Nom du sïte', } self.obj.name = name self.obj.save() doc = self._get_doc() eq_(sorted(doc['title']), [title['en-US'], title['fr']]) eq_(sorted(doc['title_translations']), [{ 'lang': 'en-US', 'string': title['en-US'] }, { 'lang': 'fr', 'string': title['fr'] }]) eq_(sorted(doc['name']), [name['en-US'], name['fr']]) eq_(sorted(doc['name_translations']), [{ 'lang': 'en-US', 'string': name['en-US'] }, { 'lang': 'fr', 'string': name['fr'] }]) eq_(doc['name_l10n_french'], [name['fr']]) eq_(doc['name_l10n_english'], [name['en-US']]) eq_(doc['name_sort'], name['en-US'].lower())
def test_list(self): self.website2 = website_factory(url='http://www.lol.com/') self.refresh('website') with self.assertNumQueries(0): response = self.anon.get(self.url) eq_(response.status_code, 200) eq_(len(response.json['objects']), 2)
def setUp(self): super(TestWebsiteReviewerActions, self).setUp() self.website = website_factory(title='something', categories=json.dumps( ['books', 'sports'])) self.user = UserProfile.objects.get(pk=2519) self.grant_permission(self.user, 'Websites:Review')
def test_list(self): self.website2 = website_factory(url='http://www.lol.com/') self._reindex() with self.assertNumQueries(0): response = self.anon.get(self.url) eq_(response.status_code, 200) eq_(len(response.json['objects']), 2)
def test_extract(self): self.obj = website_factory( **{ "categories": ["books", "sports"], # This assumes devices and region_exclusions are stored as a json # array of ids, not slugs. "devices": [DEVICE_GAIA.id, DEVICE_DESKTOP.id], "region_exclusions": [BRA.id, GTM.id, URY.id], "icon_type": "png", "icon_hash": "f4k3h4sh", } ) doc = self._get_doc() eq_(doc["id"], self.obj.id) eq_(doc["category"], self.obj.categories) eq_(doc["last_updated"], self.obj.last_updated) eq_(doc["description"], [unicode(self.obj.description)]) eq_(doc["description_translations"], [{"lang": u"en-US", "string": unicode(self.obj.description)}]) eq_(doc["description_l10n_english"], [unicode(self.obj.description)]) eq_(doc["default_locale"], self.obj.default_locale) eq_(doc["icon_hash"], self.obj.icon_hash) eq_(doc["icon_type"], self.obj.icon_type) eq_(doc["default_locale"], self.obj.default_locale) eq_(doc["created"], self.obj.created) eq_(doc["modified"], self.obj.modified) eq_(doc["url"], unicode(self.obj.url)) eq_(doc["name"], [unicode(self.obj.name)]) eq_(doc["name_translations"], [{"lang": u"en-US", "string": unicode(self.obj.name)}]) eq_(doc["short_name"], [unicode(self.obj.short_name)]) eq_(doc["short_name_translations"], [{"lang": u"en-US", "string": unicode(self.obj.short_name)}]) eq_(doc["title"], [unicode(self.obj.title)]) eq_(doc["title_translations"], [{"lang": u"en-US", "string": unicode(self.obj.title)}]) eq_(doc["device"], self.obj.devices) eq_(doc["region_exclusions"], self.obj.region_exclusions)
def test_search_ordering_relevancy(self): website1 = website_factory(name='Blah', description='Blah', devices=[mkt.DEVICE_TV.id]) website2 = website_factory(name='Blah', devices=[mkt.DEVICE_TV.id], tv_featured=1) website3 = website_factory(name='Blah', devices=[mkt.DEVICE_TV.id]) self.reindex(Website) self.reindex(Webapp) url = reverse('tv-multi-search-api') res = self.client.get(url, {'q': 'blah'}) objects = res.json['objects'] eq_(len(objects), 3) eq_(objects[0]['id'], website2.pk) eq_(objects[1]['id'], website1.pk) eq_(objects[2]['id'], website3.pk)
def test_empty(self): self.webapp = app_factory() self.website = website_factory() self.refresh(('webapp', 'website')) res = self.anon.get(self.url) eq_(res.status_code, 200) eq_(len(res.json['objects']), 0)
def setUp(self): super(TestMultiSearchView, self).setUp() self.url = reverse('fireplace-multi-search-api') self.website = website_factory() self.website.popularity.add(WebsitePopularity(region=0, value=666)) self.webapp = Webapp.objects.get(pk=337141) self.reindex(Webapp) self.reindex(Website)
def setUp(self): self.website = website_factory(**{ 'categories': json.dumps(['books', 'sports']), # This assumes devices and region_exclusions are stored as a json # array of ids, not slugs. 'devices': json.dumps([DEVICE_GAIA.id, DEVICE_DESKTOP.id]), 'region_exclusions': json.dumps([BRA.id, GTM.id, URY.id]), })
def setUp(self): self.app = app_factory(status=mkt.STATUS_PENDING) self.website = website_factory() self.user = user_factory(email='editor') self.grant_permission(self.user, 'Apps:Review') self.admin_user = user_factory(email='admin') self.grant_permission(self.admin_user, '*:*', name='Admins') user_factory(email='regular')
def setUp(self): super(TestWebsiteAbuseResource, self).setUp() self.website = website_factory() self.default_data = { 'text': 'This website is weird.', 'sprout': 'potato', 'website': self.website.pk }
def test_search_ordering(self): website1 = website_factory(name='A', devices=[mkt.DEVICE_TV.id]) website2 = website_factory(name='B', devices=[mkt.DEVICE_TV.id], tv_featured=1) website3 = website_factory(name='C', devices=[mkt.DEVICE_TV.id], tv_featured=2) website4 = website_factory(name='D', devices=[mkt.DEVICE_TV.id]) self.reindex(Website) self.reindex(Webapp) self.refresh() url = reverse('tv-multi-search-api') res = self.client.get(url) objects = res.json['objects'] eq_(len(objects), 4) eq_(objects[0]['id'], website3.pk) eq_(objects[1]['id'], website2.pk) eq_(objects[2]['id'], website1.pk) eq_(objects[3]['id'], website4.pk)
def test_get_multi(self): website = website_factory() app = app_factory() website_factory(devices=[mkt.DEVICE_DESKTOP.id, mkt.DEVICE_GAIA.id]) app.addondevicetype_set.create(device_type=mkt.DEVICE_TV.id) self.reindex(Webapp) self.reindex(Website) self.refresh() url = reverse('tv-multi-search-api') res = self.client.get(url) objects = res.json['objects'] eq_(len(objects), 2) eq_(objects[0]['doc_type'], 'webapp') assert_tvplace_app(objects[0]) eq_(objects[0]['id'], app.pk) eq_(objects[1]['doc_type'], 'website') assert_tvplace_website(objects[1]) eq_(objects[1]['id'], website.pk)
def setUp(self): super(TestWebsiteView, self).setUp() self.website = website_factory(**{ 'categories': json.dumps(['books-comics', 'sports']), # Preferred_regions are stored as a json array of ids. 'preferred_regions': json.dumps([URY.id, USA.id]), 'icon_type': 'image/png', 'icon_hash': 'fakehash', }) self.url = reverse('api-v2:website-detail', kwargs={'pk': self.website.pk})
def setUp(self): self.website = website_factory(**{ 'title': 'something', 'categories': json.dumps(['books-comics', 'sports']), 'status': STATUS_PENDING, }) self.url = reverse('api-v2:reviewers-website-search-api') self.user = UserProfile.objects.get(pk=2519) self.grant_permission(self.user, 'Apps:Review') super(TestReviewerSearch, self).setUp() self.refresh('website')
def setUp(self): self.website = website_factory(**{ 'title': 'something', 'categories': json.dumps(['books', 'sports']), 'status': STATUS_PENDING, }) self.url = reverse('api-v2:reviewers-website-search-api') self.user = UserProfile.objects.get(pk=2519) self.grant_permission(self.user, 'Apps:Review') super(TestReviewerSearch, self).setUp() self.refresh('website')
def test_attach_tags_websites(self): tag1 = Tag.objects.create(tag_text='abc', blocked=False) tag2 = Tag.objects.create(tag_text='xyz', blocked=False) tag3 = Tag.objects.create(tag_text='swearword', blocked=True) website1 = website_factory() website1.keywords.add(tag1) website1.keywords.add(tag2) website1.keywords.add(tag3) website2 = website_factory() website2.keywords.add(tag2) website2.keywords.add(tag3) website3 = website_factory() ok_(not hasattr(website1, 'keywords_list')) attach_tags([website3, website2, website1]) eq_(website1.keywords_list, ['abc', 'xyz']) eq_(website2.keywords_list, ['xyz']) ok_(not hasattr(website3, 'keywords_list'))
def test_extract(self): self.obj = website_factory( **{ 'categories': ['books', 'sports'], # Preferred_regions and devices are stored as a json array of ids. 'devices': [DEVICE_GAIA.id, DEVICE_DESKTOP.id], 'preferred_regions': [URY.id, USA.id], 'icon_type': 'png', 'icon_hash': 'f4k3h4sh', }) self.obj.keywords.add(Tag.objects.create(tag_text='hodor')) self.obj.keywords.add(Tag.objects.create(tag_text='radar')) doc = self._get_doc() eq_(doc['id'], self.obj.id) eq_(doc['category'], self.obj.categories) eq_(doc['last_updated'], self.obj.last_updated) eq_(doc['description'], [unicode(self.obj.description)]) eq_(doc['description_translations'], [{ 'lang': u'en-US', 'string': unicode(self.obj.description) }]) eq_(doc['description_l10n_english'], [unicode(self.obj.description)]) eq_(doc['default_locale'], self.obj.default_locale) eq_(doc['device'], self.obj.devices) eq_(doc['icon_hash'], self.obj.icon_hash) eq_(doc['icon_type'], self.obj.icon_type) eq_(doc['default_locale'], self.obj.default_locale) eq_(doc['created'], self.obj.created) eq_(doc['modified'], self.obj.modified) eq_(doc['name'], [unicode(self.obj.name)]) eq_(doc['name_translations'], [{ 'lang': u'en-US', 'string': unicode(self.obj.name) }]) eq_(doc['preferred_regions'], self.obj.preferred_regions) eq_(doc['promo_img_hash'], self.obj.promo_img_hash) eq_(doc['reviewed'], self.obj.last_updated) eq_(doc['short_name'], [unicode(self.obj.short_name)]) eq_(doc['short_name_translations'], [{ 'lang': u'en-US', 'string': unicode(self.obj.short_name) }]) eq_(sorted(doc['tags']), sorted(['hodor', 'radar'])) eq_(doc['title'], [unicode(self.obj.title)]) eq_(doc['title_translations'], [{ 'lang': u'en-US', 'string': unicode(self.obj.title) }]) eq_(doc['url'], self.obj.url) eq_(doc['url_tokenized'], unicode(self.indexer.strip_url(self.obj.url)))
def test_search_ordering(self): website1 = website_factory(name='A', devices=[mkt.DEVICE_TV.id]) website1.update(last_updated=self.days_ago(1)) website2 = website_factory(name='B', devices=[mkt.DEVICE_TV.id], tv_featured=1) website3 = website_factory(name='C', devices=[mkt.DEVICE_TV.id], tv_featured=2) website4 = website_factory(name='D', devices=[mkt.DEVICE_TV.id]) website4.update(last_updated=self.days_ago(2)) self.reindex(Website) self.reindex(Webapp) url = reverse('tv-multi-search-api') res = self.client.get(url) objects = res.json['objects'] eq_(len(objects), 4) eq_(objects[0]['id'], website3.pk) eq_(objects[1]['id'], website2.pk) eq_(objects[2]['id'], website1.pk) eq_(objects[3]['id'], website4.pk)
def test_attach_tags_websites(self): tag1 = Tag.objects.create(tag_text="abc", blocked=False) tag2 = Tag.objects.create(tag_text="xyz", blocked=False) tag3 = Tag.objects.create(tag_text="swearword", blocked=True) website1 = website_factory() website1.keywords.add(tag1) website1.keywords.add(tag2) website1.keywords.add(tag3) website2 = website_factory() website2.keywords.add(tag2) website2.keywords.add(tag3) website3 = website_factory() ok_(not hasattr(website1, "keywords_list")) attach_tags([website3, website2, website1]) eq_(website1.keywords_list, ["abc", "xyz"]) eq_(website2.keywords_list, ["xyz"]) ok_(not hasattr(website3, "keywords_list"))
def setUp(self): super(TestWebsiteView, self).setUp() self.website = website_factory(**{ 'categories': ['books-comics', 'sports'], # Preferred_regions and devices are stored as a json array of ids. 'devices': [DEVICE_DESKTOP.id], 'preferred_regions': [URY.id, USA.id], 'icon_type': 'image/png', 'icon_hash': 'fakehash', }) self.url = reverse('api-v2:website-detail', kwargs={'pk': self.website.pk})
def setUp(self): super(TestMultiSearchView, self).setUp() self.url = reverse('fireplace-multi-search-api') self.website = website_factory() self.website.popularity.add(WebsitePopularity(region=0, value=666)) self.webapp = Webapp.objects.get(pk=337141) self.extension = Extension.objects.create(name='test-ext-lol') self.extension.versions.create(status=STATUS_PUBLIC) self.extension.popularity.add(ExtensionPopularity(region=0, value=999)) self.reindex(Extension) self.reindex(Webapp) self.reindex(Website)
def setUp(self): super(TestWebsiteView, self).setUp() self.website = website_factory(**{ 'categories': json.dumps(['books', 'sports']), # This assumes devices and region_exclusions are stored as a json # array of ids, not slugs. 'devices': json.dumps([DEVICE_GAIA.id, DEVICE_DESKTOP.id]), 'region_exclusions': json.dumps([BRA.id, GTM.id, URY.id]), 'icon_type': 'image/png', 'icon_hash': 'fakehash', }) self.url = reverse('api-v2:website-detail', kwargs={'pk': self.website.pk})
def setUp(self): self.website = website_factory(**{ 'title': 'something', 'categories': json.dumps(['books-comics', 'sports']), # Preferred_regions are stored as a json array of ids. 'preferred_regions': json.dumps([URY.id, USA.id]), 'icon_type': 'image/png', 'icon_hash': 'fakehash', }) self.category = 'books-comics' self.url = reverse('api-v2:website-search-api') super(TestWebsiteESView, self).setUp() self.refresh('website')
def test_url(self): self.obj = website_factory() expected = { "http://domain.com": "domain", "https://www.domain.com": "domain", "http://m.domain.com": "domain", "http://mobile.domain.com": "domain", "http://domain.uk": "domain", "http://www.domain.com/path/": "domain/path/", "http://www.domain.com/path/?query#fragment": "domain/path/", } for k, v in expected.items(): eq_(self.indexer.strip_url(k), v)
def setUp(self): super(TestMultiSearchView, self).setUp() self.url = reverse('fireplace-multi-search-api') self.website = website_factory() self.website.popularity.add(WebsitePopularity(region=0, value=666)) self.website.save() self.webapp = Webapp.objects.get(pk=337141) self.webapp.save() self.extension = Extension.objects.create(name='test-ext-lol') self.extension.versions.create(status=STATUS_PUBLIC) self.extension.popularity.add(ExtensionPopularity(region=0, value=999)) self.extension.save() self.refresh(doctypes=('extension', 'webapp', 'website', 'homescreen'))
def test_trending(self): self.obj = website_factory() self.obj.trending.create(region=0, value=10.0) # Test an adolescent region. self.obj.trending.create(region=2, value=50.0) # Test a mature region. self.obj.trending.create(region=7, value=50.0) doc = self._get_doc() eq_(doc['trending'], 10.0) # An adolescent region uses the global trending value. eq_(doc['trending_2'], 10.0) eq_(doc['trending_7'], 50.0)
def test_url(self): self.obj = website_factory() expected = { 'http://domain.com': 'domain', 'https://www.domain.com': 'domain', 'http://m.domain.com': 'domain', 'http://mobile.domain.com': 'domain', 'http://domain.uk': 'domain', 'http://www.domain.com/path/': 'domain/path/', 'http://www.domain.com/path/?query#fragment': 'domain/path/', } for k, v in expected.items(): eq_(self.indexer.strip_url(k), v)
def setUp(self): self.website = website_factory(**{ 'title': 'something', 'categories': json.dumps(['books', 'sports']), # This assumes devices and region_exclusions are stored as a json # array of ids, not slugs. 'devices': json.dumps([DEVICE_GAIA.id, DEVICE_DESKTOP.id]), 'region_exclusions': json.dumps([BRA.id, GTM.id, URY.id]), }) self.category = 'books' self.url = reverse('api-v2:website-search-api') super(TestWebsiteESView, self).setUp() self._reindex()
def _create_group_of_games(self): content = [ app_factory(), website_factory(), app_factory(), website_factory() ] # Add tags. game_tag = Tag.objects.get_or_create(tag_text='featured-game')[0] for i, cat in enumerate(GAME_CATEGORIES): tag = Tag.objects.get_or_create(tag_text=GAME_CATEGORIES[i])[0] if hasattr(content[i], 'tags'): content[i].tags.add(game_tag) content[i].tags.add(tag) else: content[i].keywords.add(game_tag) content[i].keywords.add(tag) self.reindex(Webapp) self.reindex(Website) self.refresh(('webapp', 'website')) return content
def test_trending(self): self.obj = website_factory() self.obj.trending.create(region=0, value=10.0) # Test an adolescent region. self.obj.trending.create(region=2, value=50.0) # Test a mature region. self.obj.trending.create(region=42, value=50.0) doc = self._get_doc() eq_(doc['trending'], 10.0) eq_(doc['trending_42'], 50.0) # Adolescent regions trending value is not stored. ok_('trending_2' not in doc)
def setUp(self): self.website = website_factory(**{ 'title': 'something', 'categories': ['books-comics', 'sports'], # Preferred_regions and devices are stored as a json array of ids. 'devices': [DEVICE_DESKTOP.id], 'preferred_regions': [URY.id, USA.id], 'icon_type': 'image/png', 'icon_hash': 'fakehash', }) self.category = 'books-comics' self.url = reverse('api-v2:website-search-api') super(TestWebsiteESView, self).setUp() self.refresh('website')
def test_trending(self): self.obj = website_factory() self.obj.trending.create(region=0, value=10.0) # Test an adolescent region. self.obj.trending.create(region=2, value=50.0) # Test a mature region. self.obj.trending.create(region=7, value=50.0) doc = self._get_doc() eq_(doc['trending'], 10.0) eq_(doc['trending_7'], 50.0) # Adolescent regions trending value is not stored. ok_('trending_2' not in doc)
def setUp(self): super(TestMultiSearchView, self).setUp() post_request_task._start_queuing_tasks() self.url = reverse('fireplace-multi-search-api') self.website = website_factory() self.website.popularity.add(WebsitePopularity(region=0, value=666)) self.website.save() self.webapp = Webapp.objects.get(pk=337141) self.webapp.save() self.extension = Extension.objects.create(name='test-ext-lol') self.extension.versions.create(status=STATUS_PUBLIC) self.extension.popularity.add(ExtensionPopularity(region=0, value=999)) self.extension.save() post_request_task._send_tasks_and_stop_queuing() self.refresh(doctypes=('extension', 'webapp', 'website', 'homescreen'))
def setUp(self): super(TestWebsiteForm, self).setUp() self.request = RequestFactory().get('/') self.website = website_factory() self.website.keywords.add(Tag.objects.create(tag_text='horton')) self.data = { 'title_en-us': unicode(self.website.title), 'name_en-us': unicode(self.website.name), 'short_name_en-us': unicode(self.website.short_name), 'description_en-us': unicode(self.website.description), 'keywords': 'thing one, thing two', 'preferred_regions': [1, 2], 'categories': ['books-comics', 'reference'], 'status': mkt.STATUS_PUBLIC, 'is_disabled': False, 'url': self.website.url, }
def setUp(self): super(TestWebsiteForm, self).setUp() self.request = RequestFactory().get('/') self.website = website_factory() self.website.keywords.add(Tag.objects.create(tag_text='horton')) self.data = { 'title_en-us': unicode(self.website.title), 'name_en-us': unicode(self.website.name), 'short_name_en-us': unicode(self.website.short_name), 'description_en-us': unicode(self.website.description), 'keywords': 'thing one, thing two', 'preferred_regions': [1, 2], 'categories': ['books-comics', 'reference'], 'devices': [DEVICE_GAIA.id], 'status': mkt.STATUS_PUBLIC, 'is_disabled': False, 'url': self.website.url, }
def test_extract(self): self.obj = website_factory(**{ 'categories': ['books', 'sports'], # Preferred_regions and devices are stored as a json array of ids. 'devices': [DEVICE_GAIA.id, DEVICE_DESKTOP.id], 'preferred_regions': [URY.id, USA.id], 'icon_type': 'png', 'icon_hash': 'f4k3h4sh', }) self.obj.keywords.add(Tag.objects.create(tag_text='hodor')) self.obj.keywords.add(Tag.objects.create(tag_text='radar')) doc = self._get_doc() eq_(doc['id'], self.obj.id) eq_(doc['category'], self.obj.categories) eq_(doc['last_updated'], self.obj.last_updated) eq_(doc['description'], [unicode(self.obj.description)]) eq_(doc['description_translations'], [{ 'lang': u'en-US', 'string': unicode(self.obj.description)}]) eq_(doc['description_l10n_english'], [unicode(self.obj.description)]) eq_(doc['default_locale'], self.obj.default_locale) eq_(doc['device'], self.obj.devices) eq_(doc['icon_hash'], self.obj.icon_hash) eq_(doc['icon_type'], self.obj.icon_type) eq_(doc['default_locale'], self.obj.default_locale) eq_(doc['created'], self.obj.created) eq_(doc['modified'], self.obj.modified) eq_(doc['name'], [unicode(self.obj.name)]) eq_(doc['name_translations'], [{ 'lang': u'en-US', 'string': unicode(self.obj.name)}]) eq_(doc['preferred_regions'], self.obj.preferred_regions) eq_(doc['promo_img_hash'], self.obj.promo_img_hash) eq_(doc['reviewed'], self.obj.last_updated) eq_(doc['short_name'], [unicode(self.obj.short_name)]) eq_(doc['short_name_translations'], [{ 'lang': u'en-US', 'string': unicode(self.obj.short_name)}]) eq_(sorted(doc['tags']), sorted(['hodor', 'radar'])) eq_(doc['title'], [unicode(self.obj.title)]) eq_(doc['title_translations'], [{ 'lang': u'en-US', 'string': unicode(self.obj.title)}]) eq_(doc['url'], self.obj.url) eq_(doc['url_tokenized'], unicode(self.indexer.strip_url(self.obj.url)))
def test_q_relevancy_region(self): # Add another website without any preferred regions: it should rank # higher without region (description increases its score), lower with # one (region preference increases the score for the initial website). self.website2 = website_factory(title='something', description='something') self.reindex(Website) res = self.anon.get(self.url, data={'q': 'something'}) eq_(res.status_code, 200) objs = res.json['objects'] eq_(len(objs), 2) eq_(objs[0]['id'], self.website2.pk) eq_(objs[1]['id'], self.website.pk) res = self.anon.get(self.url, data={'q': 'something', 'region': 'us'}) eq_(res.status_code, 200) objs = res.json['objects'] eq_(len(objs), 2) eq_(objs[0]['id'], self.website.pk) eq_(objs[1]['id'], self.website2.pk)
def test_installs_to_popularity(self): self.obj = website_factory() # No installs. doc = self._get_doc() # Boost is multiplied by 4 if it's public. eq_(doc['boost'], 1.0 * 4) eq_(doc['popularity'], 0) # Add some popularity. self.obj.popularity.create(region=0, value=50.0) # Test an adolescent region. self.obj.popularity.create(region=2, value=10.0) # Test a mature region. self.obj.popularity.create(region=7, value=10.0) doc = self._get_doc() eq_(doc['boost'], get_boost(self.obj)) eq_(doc['popularity'], 50) eq_(doc['popularity_7'], 10) # Adolescent regions popularity value is not stored. ok_('popularity_2' not in doc)
def test_installs_to_popularity(self): self.obj = website_factory() # No installs. doc = self._get_doc() # Boost is multiplied by BOOST_MULTIPLIER_FOR_PUBLIC_CONTENT if it's # public. eq_(doc['boost'], 1.0 * BOOST_MULTIPLIER_FOR_PUBLIC_CONTENT) eq_(doc['popularity'], 0) # Add some popularity. self.obj.popularity.create(region=0, value=50.0) # Test an adolescent region. self.obj.popularity.create(region=2, value=10.0) # Test a mature region. self.obj.popularity.create(region=42, value=10.0) doc = self._get_doc() eq_(doc['boost'], get_boost(self.obj)) eq_(doc['popularity'], 50) eq_(doc['popularity_42'], 10) # Adolescent regions popularity value is not stored. ok_('popularity_2' not in doc)
def setUp(self): super(TestWebsiteEdit, self).setUp() self.website = website_factory() self.url = reverse('lookup.website_edit', args=[self.website.pk]) self.login('*****@*****.**')
def setUp(self): super(TestExcludedFields, self).setUp() self.website = website_factory() self.website.trending.create(region=2, value=50.0) self.website.popularity.create(region=2, value=142.0) self.reindex(Website)
def setUp(self): super(TestWebsiteSearch, self).setUp() self.url = reverse('lookup.website_search') self.website = website_factory() self.refresh('website') self.login('*****@*****.**')
def test_delete_search_index(self, delete_mock): for x in xrange(4): website_factory() count = Website.objects.count() Website.objects.all().delete() eq_(delete_mock.call_count, count)
def test_website(self): website = website_factory() AbuseReport(website=website).send() assert mail.outbox[0].subject.startswith('[Website]') eq_(mail.outbox[0].to, [settings.MKT_FEEDBACK_EMAIL])