Exemple #1
0
 def setUp(self):
     """
     Create a couple of branded search referer tests.
     """
     super(BrandedSearchRefererRequestTest, self).setUp()
     for key in DEFAULT_SEARCH_ENGINES.iterkeys():
         BrandedSearchRefererTestModel.objects.create(search_engine=key, branded=False)
         BrandedSearchRefererTestModel.objects.create(search_engine=key, branded=True)
     self.brand_terms = ["brand", "branded", "branded.co.uk"]
     config = {'brand_terms': self.brand_terms}
     self.test = BrandedSearchRefererTest(config)
Exemple #2
0
class BrandedSearchRefererRequestTest(BaseTestCase):
    """
    This test is designed to work with the DEFAULT_SEARCH_ENGINES
    """

    def setUp(self):
        """
        Create a couple of branded search referer tests.
        """
        super(BrandedSearchRefererRequestTest, self).setUp()
        for key in DEFAULT_SEARCH_ENGINES.iterkeys():
            BrandedSearchRefererTestModel.objects.create(search_engine=key, branded=False)
            BrandedSearchRefererTestModel.objects.create(search_engine=key, branded=True)
        self.brand_terms = ["brand", "branded", "branded.co.uk"]
        config = {'brand_terms': self.brand_terms}
        self.test = BrandedSearchRefererTest(config)

    def test_no_then_incorrect_then_correct_config_dict(self):
        try:
            test = BrandedSearchRefererTest()
        except ImproperlyConfigured:
            pass
        else:
            assert False, "No config dictionary supplied and yet no error!"
        config = {'brands': ["branded"]}
        try:
            test = BrandedSearchRefererTest(config)
        except ImproperlyConfigured:
            pass
        else:
            assert False, "Incorrect key in config dictionary and yet no error!"
        config = {'brand_terms': ["branded"]}
        try:
            test = BrandedSearchRefererTest(config)
        except ImproperlyConfigured:
            assert False, "Correct key in config dictionary but we're getting an error."

    def test_no_referer(self):
        """
        Test that no referer returns No match and doesn't 500.
        """
        request = self.req_factory.request(HTTP_REFERER="")
        match = self.test.test(request)
        assert match is None

    def test_partial_referer(self):
        """
        Test that a partial referer returns no match and doesn't 500.
        """
        request = self.req_factory.request(HTTP_REFERER="http://")
        match = self.test.test(request)
        assert match is None

    def test_no_query_string_on_referer(self):
        referer_url = "http://www.google.co.uk/"
        request = self.req_factory.request(HTTP_REFERER=referer_url)
        match = self.test.test(request)
        assert match.search_engine == 'google'
        # With no query string, we should always be unbranded.
        assert match.branded == False

    """
    Branded counts as search terms which include the branded terms we set in setUp.
    Unbranded is any other search term which does not contain those terms.
    """

    def test_ask_branded(self):
        # Branded as it has the word "branded" in the query..
        referer_url = "http://uk.ask.com/web?q=branded+test&search=&qsrc=0&o=312&l=dir"
        request = self.req_factory.request(HTTP_REFERER=referer_url)
        match = self.test.test(request)
        assert match.search_engine == 'ask'
        assert match.branded == True

    def test_ask_unbranded(self):
        referer_url = "http://uk.ask.com/web?q=random+test&search=&qsrc=0&o=312&l=dir"
        request = self.req_factory.request(HTTP_REFERER=referer_url)
        match = self.test.test(request)
        assert match.search_engine == 'ask'
        assert match.branded == False

    def test_bing_branded(self):
        referer_url = "http://www.bing.com/search?q=branded.co.uk+test+term&go=&form=QBRE&filt=all&qs=n&sk="
        request = self.req_factory.request(HTTP_REFERER=referer_url)
        match = self.test.test(request)
        assert match.search_engine == 'bing'
        assert match.branded == True

    def test_bing_unbranded(self):
        referer_url = "http://www.bing.com/search?q=random+test+term&go=&form=QBRE&filt=all&qs=n&sk="
        request = self.req_factory.request(HTTP_REFERER=referer_url)
        match = self.test.test(request)
        assert match.search_engine == 'bing'
        assert match.branded == False

    def test_google_instant_branded(self):
        referer_url = "http://www.google.com/#sclient=psy&hl=en&q=branded.co.uk+test+term&aq=f&aqi=&aql=&oq=&pbx=1&fp=31bd50ee20ddd9f2"
        request = self.req_factory.request(HTTP_REFERER=referer_url)
        match = self.test.test(request)
        assert match.search_engine == 'google'
        assert match.branded == True

    def test_google_instant_unbranded(self):
        referer_url = "http://www.google.com/#sclient=psy&hl=en&q=term+search+random&aq=f&aqi=&aql=&oq=&pbx=1&fp=31bd50ee20ddd9f2"
        request = self.req_factory.request(HTTP_REFERER=referer_url)
        match = self.test.test(request)
        assert match.search_engine == 'google'
        assert match.branded == False

    def test_google_normal_branded(self):

        referer_url = "http://www.google.com/search?hl=en&source=hp&biw=1680&bih=860&q=search+test+branded&aq=f&aqi=&aql=&oq="
        request = self.req_factory.request(HTTP_REFERER=referer_url)
        match = self.test.test(request)
        assert match.search_engine == 'google'
        assert match.branded == True

    def test_google_normal_unbranded(self):
        referer_url = "http://www.google.com/search?hl=en&biw=1680&bih=860&q=search+test+random&aq=f&aqi=&aql=&oq="
        request = self.req_factory.request(HTTP_REFERER=referer_url)
        match = self.test.test(request)
        assert match.search_engine == 'google'
        assert match.branded == False

        assert match.branded == False

    def test_yahoo_branded(self):
        referer_url = "http://uk.search.yahoo.com/search;_ylt=Anai_uHQTTS4fYw9WKSHXNk4hJp4?vc=&p=brand+search+term&toggle=1&cop=mss&ei=UTF-8&fr=yfp-t-702"
        request = self.req_factory.request(HTTP_REFERER=referer_url)
        match = self.test.test(request)
        assert match.search_engine == 'yahoo'
        assert match.branded == True

    def test_yahoo_unbranded(self):
        referer_url = "http://uk.search.yahoo.com/search;_ylt=Anai_uHQTTS4fYw9WKSHXNk4hJp4?vc=&p=random+search+term&toggle=1&cop=mss&ei=UTF-8&fr=yfp-t-702"
        request = self.req_factory.request(HTTP_REFERER=referer_url)
        match = self.test.test(request)
        assert match.search_engine == 'yahoo'
        assert match.branded == False