예제 #1
0
    def test_translate_missing_field_multiple_objects(self):
        dummy_object = {"valid_field": 42, "missing_field": 21}
        dummy_object_with_missing_field = {"valid_field": 42}
        fields = {"expected_field": "missing_field"}

        with self.assertRaises(KeyError):
            Scraper._translateFields(
                {"hits": [dummy_object, dummy_object_with_missing_field]},
                fields=fields)
예제 #2
0
    def test_translate_missing_field(self):
        dummy_object = {
            "first_field": 42,
            "second_field": 21
        }
        fields = {
            "expected_field": "missing_field"
        }

        with self.assertRaises(KeyError):
            Scraper._translateFields({"hits": [dummy_object]}, fields=fields)
예제 #3
0
 def test_translate_fields(self):
     dummy_object = {"first_field": 42, "second_field": 21}
     fields = {"changed1": "first_field", "changed2": "second_field"}
     expected = {"changed1": 42, "changed2": 21}
     translated_object = Scraper._translateFields({"hits": [dummy_object]},
                                                  fields=fields)[0]
     self.assertDictEqual(translated_object, expected)
예제 #4
0
    def test_translate_missing_field_multiple_objects(self):
        dummy_object = {
            "valid_field": 42,
            "missing_field": 21
        }
        dummy_object_with_missing_field = {
            "valid_field": 42
        }
        fields = {
            "expected_field": "missing_field"
        }

        with self.assertRaises(KeyError):
            Scraper._translateFields(
                    {"hits": [dummy_object, dummy_object_with_missing_field]},
                    fields=fields)
예제 #5
0
 def test_translate_fields_no_fields(self):
     dummy_object = {
         "first_field": 42,
         "second_field": 21
     }
     translated_object = Scraper._translateFields({"hits": [dummy_object]},
         fields=None)[0]
     self.assertDictEqual(translated_object, dummy_object)
예제 #6
0
    def test_translate_fields_multiple_objects(self):
        NR_OBJECTS = 2

        dummy_object = {"first_field": 42, "second_field": 21}
        fields = {"changed1": "first_field", "changed2": "second_field"}
        expected = [{"changed1": 42, "changed2": 21}] * NR_OBJECTS
        translated_objects = Scraper._translateFields(
            {"hits": [dummy_object] * NR_OBJECTS}, fields=fields)
        self.assertItemsEqual(translated_objects, expected)
    def test_get_stories(self):
        hits = [StoryFactory(created_at_i=42) for _ in range(2)]

        httpretty.register_uri(httpretty.GET, AlgoliaEndpoint.URL,
                               responses=self._createPages(hits=hits),
                               content_type="application/json")

        resp = list(StoryScraper().getStories(since=42))
        expected = Scraper._translateFields({"hits": hits},
                StoryScraper.FIELDS)
        self.assertListEqual(resp, expected)
예제 #8
0
    def test_get_stories(self):
        hits = [StoryFactory(created_at_i=42) for _ in range(2)]

        httpretty.register_uri(httpretty.GET,
                               AlgoliaEndpoint.URL,
                               responses=self._createPages(hits=hits),
                               content_type="application/json")

        resp = list(StoryScraper().getStories(since=42))
        expected = Scraper._translateFields({"hits": hits},
                                            StoryScraper.FIELDS)
        self.assertListEqual(resp, expected)
예제 #9
0
 def test_translate_fields(self):
     dummy_object = {
         "first_field": 42,
         "second_field": 21
     }
     fields = {
         "changed1": "first_field",
         "changed2": "second_field"
     }
     expected = {
         "changed1": 42,
         "changed2": 21
     }
     translated_object = Scraper._translateFields({"hits": [dummy_object]},
         fields=fields)[0]
     self.assertDictEqual(translated_object, expected)
예제 #10
0
    def test_translate_fields_multiple_objects(self):
        NR_OBJECTS = 2

        dummy_object = {
            "first_field": 42,
            "second_field": 21
        }
        fields = {
            "changed1": "first_field",
            "changed2": "second_field"
        }
        expected = [{
            "changed1": 42,
            "changed2": 21
        }] * NR_OBJECTS
        translated_objects = Scraper._translateFields(
                {"hits": [dummy_object] * NR_OBJECTS}, fields=fields)
        self.assertItemsEqual(translated_objects, expected)
예제 #11
0
 def test_translate_fields_no_fields(self):
     dummy_object = {"first_field": 42, "second_field": 21}
     translated_object = Scraper._translateFields({"hits": [dummy_object]},
                                                  fields=None)[0]
     self.assertDictEqual(translated_object, dummy_object)
예제 #12
0
    def test_translate_missing_field(self):
        dummy_object = {"first_field": 42, "second_field": 21}
        fields = {"expected_field": "missing_field"}

        with self.assertRaises(KeyError):
            Scraper._translateFields({"hits": [dummy_object]}, fields=fields)