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
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")