Example #1
0
 def test_parsed_serial_passed_to_product_director_returns_good_product(
         self, serial, expected):
     parsed = {}
     serial_parser = SerialNumberParser(serial)
     for result in serial_parser:
         parsed[result[0]] = result[1]
     builder = ProductDirector(SerializedProductBuilder(NativeDataProxy))
     product = builder.create_product_from_key(parsed)
     assert product == expected
    def resolve_products_from_serials(parent, info, serials):
        """ Consumes a list of serial numbers, composes the parser, then the
        product builder, returns all products as dicts with meaningful keys and data
        """

        products = []
        for serial in serials:
            parsed = {}
            serial_parser = SerialNumberParser(serial)
            for result in serial_parser:
                parsed[result[0]] = result[1]
            builder = ProductDirector(
                SerializedProductBuilder(SQLAlchemyModelProxy))
            product = builder.create_product_from_key(parsed)
            product['serial'] = serial
            products.append(product)
        return products
 def test_product_builder_sets_version_correctly(self, test_version):
     builder = SerializedProductBuilder(NativeDataProxy)
     builder.set_version(test_version)
     assert builder.product['version'] == test_version
 def test_product_builder_adds_factory_correctly(self, test_code,
                                                 expected_result):
     builder = SerializedProductBuilder(NativeDataProxy)
     builder.set_factory(test_code)
     assert builder.product['factory'] == expected_result
 def test_product_builder_adds_production_year_correctly(
         self, test_code, expected_result):
     builder = SerializedProductBuilder(NativeDataProxy)
     builder.set_production_year(test_code)
     assert builder.product['year_built'] == expected_result
 def test_product_builder_adds_model_name_correctly(self, test_code,
                                                    expected_result):
     builder = SerializedProductBuilder(NativeDataProxy)
     builder.set_product_model(test_code)
     assert builder.product['product_model'] == expected_result
 def test_query_model_proxy_returns_unknown_if_entry_not_found(
         self, query_models, nonexistant_values):
     builder = SerializedProductBuilder(NativeDataProxy)
     test_result = builder._query_model_proxy(query_models,
                                              nonexistant_values)
     assert test_result == 'Unknown'
 def test_product_builder_sets_version_correctly(self, test_unique_id):
     builder = SerializedProductBuilder(NativeDataProxy)
     builder.set_unique_id(test_unique_id)
     assert builder.product['unique_id'] == test_unique_id