예제 #1
0
def load_consolidator(relative_path="../../compiled_files/"):
    consolidator_json = load_file(consolidated_products_filename,
                                  relative_path)
    product_consolidator = ProductConsolidator()
    if consolidator_json is not None:
        product_consolidator = ProductConsolidator.from_json(consolidator_json)

    return product_consolidator
예제 #2
0
 def test_add_item_to_map(self):
     product_consolidator = ProductConsolidator()
     brand = "I'm a brand"
     model = "I'm a model"
     item = ItemBase(brand, model)
     product_consolidator.__add_item_to_map__(
         item, product_consolidator.pre_shaves)
     self.assertTrue(item.brand in product_consolidator.pre_shaves)
     self.assertTrue(
         item.model in product_consolidator.pre_shaves[item.brand])
     self.assertEqual(
         item, product_consolidator.pre_shaves[item.brand][item.model])
예제 #3
0
from src.main.com.rowley.shavekeeper.productdatacompiler.models.ProductConsolidator import ProductConsolidator
from src.main.com.rowley.shavekeeper.productdatacompiler.models.ProductModelByBrandMap import ProductModelByBrandMap
from src.main.com.rowley.shavekeeper.productdatacompiler.web.FileHelper import load_consolidator, save_consolidator, \
    save_reconciler, load_file, save_file

reconciled_json = load_file("Reconciler2_Reconciled", "../compiled_files/")
reconciled = ProductModelByBrandMap.from_json(reconciled_json)

consolidated_json = load_file("ConsolidatedProducts2", "../compiled_files/")
base_consolidated = ProductConsolidator.from_json(consolidated_json)

deduped = ProductConsolidator()

total_pre = 0
total_post = 0

for brand in base_consolidated.pre_shaves:
    for model in base_consolidated.pre_shaves[brand]:
        total_pre += 1
        if brand in reconciled.brands and model in reconciled.brands[brand]:
            # print "handling brand: " + brand + " model: " + model
            consolidated_pre_shave = base_consolidated.pre_shaves[brand][model]
            reconciled_pre_shave = reconciled.brands[brand][model]
            consolidated_pre_shave["brand"] = reconciled_pre_shave["brand"]
            consolidated_pre_shave["model"] = reconciled_pre_shave["model"]
            deduped.add_pre_shave(consolidated_pre_shave)

for brand in base_consolidated.soaps:
    for model in base_consolidated.soaps[brand]:
        total_pre += 1
        if brand in reconciled.brands and model in reconciled.brands[brand]:
    def create_test_product_consolidator(self):
        product_consolidator = ProductConsolidator()

        pre_shave_1 = PreShave(self.brand_one, "Preshave 1 model")
        product_consolidator.add_pre_shave(pre_shave_1)
        pre_shave_2 = PreShave(self.brand_two, "Preshave 2 model")
        product_consolidator.add_pre_shave(pre_shave_2)
        pre_shave_3 = PreShave(self.brand_two, "Preshave 3 model")
        product_consolidator.add_pre_shave(pre_shave_3)

        soap_1 = Soap(self.brand_one, "Soap 1 model")
        product_consolidator.add_soap(soap_1)
        soap_2 = Soap(self.brand_one, "Soap 2 model")
        product_consolidator.add_soap(soap_2)
        soap_3 = Soap(self.brand_one, "Soap 3 model")
        product_consolidator.add_soap(soap_3)

        brush = Brush(self.brand_one, "brush model")
        product_consolidator.add_brush(brush)

        razor_1 = Razor(self.brand_one, "Razor 1 model", "DE", True, False)
        product_consolidator.add_razor(razor_1)
        razor_2 = Razor(self.brand_two, "Razor 2 model", "Straight Blade", False, False)
        product_consolidator.add_razor(razor_2)

        blade_1 = Blade(self.brand_one, "Blade 1 model")
        product_consolidator.add_blade(blade_1)
        blade_2 = Blade(self.brand_one, "Blade 2 model")
        product_consolidator.add_blade(blade_2)
        blade_3 = Blade(self.brand_two, "Blade 3 model")
        product_consolidator.add_blade(blade_3)
        blade_4 = Blade(self.brand_two, "Blade 4 model")
        product_consolidator.add_blade(blade_4)
        blade_5 = Blade(self.brand_one, "Blade 5 model")
        product_consolidator.add_blade(blade_5)

        post_shave_1 = PostShave(self.brand_one, "Post Shave 1 model")
        product_consolidator.add_post_shave(post_shave_1)
        post_shave_2 = PostShave(self.brand_two, "Post Shave 2 model")
        product_consolidator.add_post_shave(post_shave_2)

        after_shave_1 = AfterShave(self.brand_one, "AfterShave 1 model")
        product_consolidator.add_after_shave(after_shave_1)

        return product_consolidator
예제 #5
0
 def test_save_file(self):
     products = ProductConsolidator()
     products.add_after_shave(AfterShave("brand", "model"))
     save_file(products, filename="TestFile")
예제 #6
0
 def test_load_file_exists(self):
     reference = ProductConsolidator()
     reference.add_after_shave(AfterShave("brand", "model"))
     products = load_file("TestFile")
     self.assertEqual(reference.to_json(), products)
예제 #7
0
 def set_up_mock(self):
     product_consolidator = ProductConsolidator()
     product_consolidator.__add_item_to_map__ = MagicMock(return_value=True)
     return product_consolidator
예제 #8
0
 def test_from_JSON(self):
     product_consolidator = ProductConsolidator.from_json(
         self.product_consolidator_json_string)
     reference_consolidator = self.create_test_product_consolidator()
     self.assertEquals(product_consolidator, reference_consolidator)
예제 #9
0
 def test_eq_different_types(self):
     self.assertNotEqual(ProductConsolidator(), Brush())
예제 #10
0
 def test_eq_same_instance(self):
     product_consolidator = ProductConsolidator()
     self.assertEqual(product_consolidator, product_consolidator)