Exemple #1
0
    def test_transform_product(self):
        product = self.obsbygg_products[0]
        config = {
            "provenance": "obsbygg",
            "namespace": "obsbygg",
            "market": "no",
            "fieldMapping": get_field_mapping(),
            "categoriesLimits": [],
            "extractQuantityFields": ["title"],
            "ignore_none": False,
            "collection_name": "byggoffers",
        }

        actual = transform_product(product, config)
        self.assertIsNotNone(actual["imageUrl"])
        self.assertIsNotNone(actual["dealer"])

        product = self.swecandy_products[0]
        config = {
            "provenance": "swecandy.se",
            "namespace": "swecandy",
            "market": "no",
            "fieldMapping": get_field_mapping(),
            "categoriesLimits": [],
            "extractQuantityFields": ["title"],
            "ignore_none": False,
            "collection_name": "groceryoffers",
        }

        actual = transform_product(product, config)
        self.assertIsNotNone(actual["imageUrl"])
        self.assertIsNotNone(actual["dealer"])
 def test_basic_with_default_config(self):
     actual = get_field_mapping()
     self.assertIsInstance(actual, list)
     self.assertIsInstance(
         find(actual, lambda x: x["source"] == "url"),
         dict,
     )
 def test_get_field_map(self):
     field_mapping = [{
         "replace_type": "key",
         "source": "Manufacturer Number",
         "destination": "mpn",
     }]
     actual = get_field_mapping(field_mapping)
     self.assertDictEqual(
         find(actual, lambda x: x["destination"] == "mpn"),
         field_mapping[0],
     )
Exemple #4
0
    def test_transform_product_with_namespace(self):
        product = self.obsbygg_products[0]
        config = {
            "provenance": "obsbygg",
            "namespace": "HALLA",
            "market": "no",
            "fieldMapping": get_field_mapping(),
            "categoriesLimits": [],
            "extractQuantityFields": ["title"],
            "ignore_none": False,
            "collection_name": "groceryoffers",
        }

        actual = transform_product(product, config)
        self.assertIn("HALLA", actual["uri"])
def generate_handle_config(config: dict) -> HandleConfig:
    result = {}
    result["provenance"] = config["provenance"]
    result["namespace"] = config["namespace"]
    result["collection_name"] = config["collection_name"]
    result["market"] = config["market"]
    result["is_partner"] = config.get("is_partner", False)
    result["categoriesLimits"] = get(config,
                                     ["additionalConfig", "categoriesLimits"],
                                     [])
    result["filters"] = get(config, ["additionalConfig", "filters"], [])
    result["fieldMapping"] = get_field_mapping(config.get("fieldMapping", []))
    extract_quantity_fields = config.get("extractQuantityFields",
                                         DEFAULT_EXTRACT_QUANTITY_FIELDS)
    result["extractQuantityFields"] = (extract_quantity_fields
                                       if type(extract_quantity_fields) is list
                                       else DEFAULT_EXTRACT_QUANTITY_FIELDS)
    result["ignore_none"] = get(config, ["additionalConfig", "ignoreNone"],
                                False)
    return result