def translate_products(data):
    products = []
    for item in data:
        product = Product()
        product.created = convert_to_datetime(item["created"])
        product.updated = convert_to_datetime(item["updated"])
        product.product_id = item["id"]
        product.name = item["name"]
        for attribute in item["attributes"]:
            # Expecting values for "type", "arch", "name"
            product.attrs[attribute["name"]] = attribute["value"]
        eng_prods = []
        eng_ids = []
        for prod_cnt in item["productContent"]:
            ep = dict()
            ep["id"] = prod_cnt["content"]["id"]
            ep["label"] = prod_cnt["content"]["label"]
            ep["name"] = prod_cnt["content"]["name"]
            ep["vendor"] = prod_cnt["content"]["vendor"]
            eng_prods.append(ep)
            eng_ids.append(ep["id"])
        product.eng_prods = eng_prods
        product.engineering_ids = eng_ids
        product.dependent_product_ids = item["dependentProductIds"]
        products.append(product)
    return products
Example #2
0
    def test_date_as_string_is_converted_on_save(self):
        found = Product.objects()
        self.assertEquals(len(found), 0)

        p = Product()
        p.product_id = "pid"
        p.name = "pname"
        p.engineering_ids = ["3", "5"]
        p.created = "2012-12-06T11:13:06.432367+00:00"
        p.updated = "2012-12-06T11:13:06.432367+00:00"
        p.eng_prods = []
        p.attrs = {}
        p.dependent_product_ids = []
        p.save()

        found = Product.objects()
        self.assertEquals(len(found), 1)
        self.assertEquals(found[0].product_id, p.product_id)
        self.assertEquals(found[0].name, p.name)
        self.assertEquals(found[0].engineering_ids, p.engineering_ids)
        self.assertEquals(found[0].eng_prods, p.eng_prods)
        self.assertEquals(found[0].attrs, p.attrs)
        self.assertEquals(found[0].dependent_product_ids, p.dependent_product_ids)
        self.assertIsNotNone(found[0].created)
        self.assertEquals(type(found[0].created), datetime.datetime)
        self.assertIsNotNone(found[0].updated)
        self.assertEquals(type(found[0].updated), datetime.datetime)
        self.assertEquals(str(found[0].created), "2012-12-06 11:13:06.432000+00:00")
        self.assertEquals(str(found[0].updated), "2012-12-06 11:13:06.432000+00:00")