예제 #1
0
    def test_featured_extensions_with_category_es_ES(self):
        addon = self.addon
        res = self.client.get(reverse('browse.extensions', args=['bookmarks']))
        assert addon in res.context['filter'].all()['featured']

        self.change_addoncategory(addon, 'es')

        cache.delete(
            memoize_key('addons:featured', amo.FIREFOX, u'en-US',
                        amo.ADDON_EXTENSION))
        cache.delete(memoize_key('addons:creatured', 'Bookmarks', u'en-US'))

        res = self.client.get(reverse('browse.extensions', args=['bookmarks']))
        assert addon not in res.context['filter'].all()['featured']
예제 #2
0
    def test_featured_extensions_with_category_es_ES(self):
        addon = self.addon
        res = self.client.get(reverse('browse.extensions', args=['bookmarks']))
        assert addon in res.context['filter'].all()['featured']

        self.change_addoncategory(addon, 'es')

        cache.delete(memoize_key(
            'addons:featured', amo.FIREFOX, u'en-US', amo.ADDON_EXTENSION))
        cache.delete(memoize_key(
            'addons:creatured', 'Bookmarks', u'en-US'))

        res = self.client.get(reverse('browse.extensions', args=['bookmarks']))
        assert addon not in res.context['filter'].all()['featured']
예제 #3
0
def test_memoize():
    @memoize('f')
    def add(*args):
        return sum(args)

    cache_key = memoize_key('f', 1, 2)
    assert add(1, 2) == cache.get(cache_key)
예제 #4
0
def test_memoize():
    @memoize('f')
    def add(*args):
        return sum(args)

    cache_key = memoize_key('f', 1, 2)
    assert add(1, 2) == cache.get(cache_key)
예제 #5
0
    def test_homepage_order(self):
        FeaturedCollection.objects.filter(collection__addons=3615)[0].delete()

        # Make these apps listed.
        for pk in [1003, 3481]:
            addon = Addon.objects.get(pk=pk)
            addon.update(status=amo.STATUS_PUBLIC)
            addon.appsupport_set.create(app=1)

        # Note 1003 and 3481 are now en-US.
        # And 7661 and 2464 are now None.
        # The order should be random within those boundaries.
        another = Addon.objects.get(id=1003)
        self.change_addon(another, 'en-US')

        cache.delete(
            memoize_key('addons:featured', amo.FIREFOX, u'en-US',
                        amo.ADDON_EXTENSION))
        cache.delete(
            memoize_key('addons:featured', amo.FIREFOX, u'en-US',
                        amo.ADDON_PERSONA))

        url = reverse('home')
        res = self.client.get(url)
        items = res.context['featured']

        assert [1003, 3481] == sorted([i.pk for i in items[0:2]])
        assert [2464, 7661] == sorted([i.pk for i in items[2:]])

        res = self.client.get(url.replace('en-US', 'es'))
        items = res.context['featured']
        assert [2464, 7661] == sorted([i.pk for i in items])

        self.change_addon(another, 'es')

        cache.delete(
            memoize_key('addons:featured', amo.FIREFOX, u'es',
                        amo.ADDON_EXTENSION))

        res = self.client.get(url.replace('en-US', 'es'))
        items = res.context['featured']
        assert items[0].pk == 1003
        assert [1003, 2464, 7661] == sorted([i.pk for i in items])
예제 #6
0
    def test_homepage_order(self):
        FeaturedCollection.objects.filter(collection__addons=3615)[0].delete()

        # Make these apps listed.
        for pk in [1003, 3481]:
            addon = Addon.objects.get(pk=pk)
            addon.update(status=amo.STATUS_PUBLIC)
            addon.appsupport_set.create(app=1)

        # Note 1003 and 3481 are now en-US.
        # And 7661 and 2464 are now None.
        # The order should be random within those boundaries.
        another = Addon.objects.get(id=1003)
        self.change_addon(another, 'en-US')

        cache.delete(memoize_key(
            'addons:featured', amo.FIREFOX, u'en-US', amo.ADDON_EXTENSION))
        cache.delete(memoize_key(
            'addons:featured', amo.FIREFOX, u'en-US', amo.ADDON_PERSONA))

        url = reverse('home')
        res = self.client.get(url)
        items = res.context['featured']

        assert [1003, 3481] == sorted([i.pk for i in items[0:2]])
        assert [2464, 7661] == sorted([i.pk for i in items[2:]])

        res = self.client.get(url.replace('en-US', 'es'))
        items = res.context['featured']
        assert [2464, 7661] == sorted([i.pk for i in items])

        self.change_addon(another, 'es')

        cache.delete(memoize_key(
            'addons:featured', amo.FIREFOX, u'es', amo.ADDON_EXTENSION))

        res = self.client.get(url.replace('en-US', 'es'))
        items = res.context['featured']
        assert items[0].pk == 1003
        assert [1003, 2464, 7661] == sorted([i.pk for i in items])
예제 #7
0
    def test_featured_persona_no_category_en_US(self):
        addon = self.persona
        url = reverse('browse.personas')
        res = self.client.get(url)
        assert addon in res.context['featured']

        self.change_addon(addon, 'es')
        cache.delete(memoize_key('addons:featured', amo.FIREFOX, u'en-US'))

        res = self.client.get(url)
        assert addon not in res.context['featured']

        res = self.client.get(url.replace('en-US', 'es'))
        assert addon in res.context['featured']
예제 #8
0
    def test_featured_persona_no_category_en_US(self):
        addon = self.persona
        url = reverse('browse.personas')
        res = self.client.get(url)
        assert addon in res.context['featured']

        self.change_addon(addon, 'es')
        cache.delete(memoize_key('addons:featured', amo.FIREFOX, u'en-US'))

        res = self.client.get(url)
        assert addon not in res.context['featured']

        res = self.client.get(url.replace('en-US', 'es'))
        assert addon in res.context['featured']
예제 #9
0
    def test_homepage(self):
        url = reverse('home')
        res = self.client.get(url)
        assert self.extension in res.context['featured']

        self.change_addon(self.extension, 'es')

        cache.delete(memoize_key(
            'addons:featured', amo.FIREFOX, u'en-US', amo.ADDON_EXTENSION))

        res = self.client.get(url)
        assert self.extension not in res.context['featured']

        res = self.client.get(url.replace('en-US', 'es'))
        assert self.extension in res.context['featured']
예제 #10
0
    def test_homepage(self):
        url = reverse('home')
        res = self.client.get(url)
        assert self.extension in res.context['featured']

        self.change_addon(self.extension, 'es')

        cache.delete(
            memoize_key('addons:featured', amo.FIREFOX, u'en-US',
                        amo.ADDON_EXTENSION))

        res = self.client.get(url)
        assert self.extension not in res.context['featured']

        res = self.client.get(url.replace('en-US', 'es'))
        assert self.extension in res.context['featured']
예제 #11
0
    def test_featured_persona_category_en_US(self):
        addon = self.persona
        category = Category.objects.get(id=22)
        category.update(type=amo.ADDON_PERSONA)

        addon.addoncategory_set.create(category=category, feature=True)

        url = reverse('browse.personas', args=[category.slug])
        res = self.client.get(url)
        assert addon in res.context['featured']

        self.change_addoncategory(addon, 'es')

        cache.delete(memoize_key('addons:creatured', category, u'en-US'))

        res = self.client.get(url)
        assert addon not in res.context['featured']

        res = self.client.get(url.replace('en-US', 'es'))
        assert addon in res.context['featured']
예제 #12
0
    def test_featured_persona_category_en_US(self):
        addon = self.persona
        category = Category.objects.get(id=22)
        category.update(type=amo.ADDON_PERSONA)

        addon.addoncategory_set.create(category=category, feature=True)

        url = reverse('browse.personas', args=[category.slug])
        res = self.client.get(url)
        assert addon in res.context['featured']

        self.change_addoncategory(addon, 'es')

        cache.delete(memoize_key('addons:creatured', category, u'en-US'))

        res = self.client.get(url)
        assert addon not in res.context['featured']

        res = self.client.get(url.replace('en-US', 'es'))
        assert addon in res.context['featured']
예제 #13
0
def clear_get_featured_ids_cache(*args, **kwargs):
    cache_key = memoize_key('addons:featured', *args, **kwargs)
    cache.delete(cache_key)
예제 #14
0
def clear_get_featured_ids_cache(*args, **kwargs):
    cache_key = memoize_key('addons:featured', *args, **kwargs)
    cache.delete(cache_key)
예제 #15
0
def test_memoize_key():
    assert memoize_key('foo', ['a', 'b'], {'c': 'e'}) == (
        'memoize:foo:9666a2a48c17dc1c308fb327c2a6e3a8')
예제 #16
0
def test_memoize_key():
    assert memoize_key('foo', ['a', 'b'], {'c': 'e'}) == (
        'testing:memoize:foo:9666a2a48c17dc1c308fb327c2a6e3a8')