def test_is_valid_serial_range(self): pitem = ProductionProducedItem(store=self.store) pitem.product = self.create_product() self.assertTrue(ProductionProducedItem.is_valid_serial_range( pitem.product, 1, 2, self.store)) pitem.serial_number = 1 self.assertFalse(ProductionProducedItem.is_valid_serial_range( pitem.product, 1, 2, self.store))
def test_get_last_serial_number(self): pitem = ProductionProducedItem(store=self.store) pitem.product = self.create_product() last = ProductionProducedItem.get_last_serial_number(pitem.product, self.store) self.assertEquals(last, 0) pitem.serial_number = 10 last = ProductionProducedItem.get_last_serial_number(pitem.product, self.store) self.assertEquals(last, 10)
def test_get_or_create_multiple_with_null(self): # Check if get_or_creating is working properly when using references # with null values. item_a = ProductionProducedItem.get_or_create( self.store, serial_number=456, product=None) self.assertEquals(item_a.serial_number, 456) self.assertEquals(item_a.product, None) item_b = ProductionProducedItem.get_or_create( self.store, serial_number=456, product=None) self.assertEquals(item_a, item_b)
def test_can_remove(self): product = self.create_product() test = ProductQualityTest(store=self.store, product=product) # Test has never been used self.assertTrue(test.can_remove()) order = self.create_production_order() user = self.create_user() item = ProductionProducedItem(product=product, order=order, produced_by=user, produced_date=localtoday().date(), serial_number=1, store=self.store) self.assertTrue(test.can_remove()) # Test has been used in a production ProductionItemQualityResult(produced_item=item, quality_test=test, tested_by=user, result_value=u'True', test_passed=True, store=self.store) self.assertFalse(test.can_remove())
def on_serial_number__validate(self, widget, value): qty = self._parent.quantity.read() if qty is ValueUnset: qty = 0 first = value last = value + qty - 1 if not ProductionProducedItem.is_valid_serial_range(self._product, first, last, self.store): return ValidationError(_('There already is a serial number in ' 'the range %d - %d') % (first, last))
def test_get_or_create_multiple(self): # This test is for get_or_create call with more than one property product = self.create_product() # Make sure there is no item yet. item = self.store.find(ProductionProducedItem, serial_number=123, product=product).one() self.assertEquals(item, None) # First call to get_or_create should create the object. item_a = ProductionProducedItem.get_or_create( self.store, serial_number=123, product=product) # And set the properties given self.assertEquals(item_a.serial_number, 123) self.assertEquals(item_a.product, product) # The second call to get_or_create should return the same object item_b = ProductionProducedItem.get_or_create( self.store, serial_number=123, product=product) self.assertEquals(item_a, item_b)
def test_send_to_stock(self): pitem = ProductionProducedItem(store=self.store) pitem.order = self.create_production_order() pitem.product = self.create_storable().product pitem.send_to_stock(self.current_user) self.assertTrue( self.store.find( StockTransactionHistory, object_id=pitem.id, type=StockTransactionHistory.TYPE_PRODUCTION_SENT).one()) pitem.send_to_stock(self.current_user) self.assertTrue( self.store.find( StockTransactionHistory, object_id=pitem.id, type=StockTransactionHistory.TYPE_PRODUCTION_SENT).one())
def test_is_valid_serial_range(self): pitem = ProductionProducedItem(store=self.store) pitem.product = self.create_product() self.assertTrue( ProductionProducedItem.is_valid_serial_range( pitem.product, 1, 2, self.store)) pitem.serial_number = 1 self.assertFalse( ProductionProducedItem.is_valid_serial_range( pitem.product, 1, 2, self.store))
def test_get_last_serial_number(self): pitem = ProductionProducedItem(store=self.store) pitem.product = self.create_product() last = ProductionProducedItem.get_last_serial_number( pitem.product, self.store) self.assertEqual(last, 0) pitem.serial_number = 10 last = ProductionProducedItem.get_last_serial_number( pitem.product, self.store) self.assertEqual(last, 10)
def test_send_to_stock(self): pitem = ProductionProducedItem(store=self.store) pitem.order = self.create_production_order() pitem.product = self.create_storable().product pitem.send_to_stock() self.assertTrue( self.store.find(StockTransactionHistory, object_id=pitem.id, type=StockTransactionHistory.TYPE_PRODUCTION_SENT).one()) pitem.send_to_stock() self.assertTrue( self.store.find(StockTransactionHistory, object_id=pitem.id, type=StockTransactionHistory.TYPE_PRODUCTION_SENT).one())
def create_model(self, store): serial = ProductionProducedItem.get_last_serial_number( self._product, store) return Settable(serial_number=serial + 1)
def test_get_pending_tests(self): pitem = ProductionProducedItem(store=self.store) pitem.product = self.create_product() self.assertEqual(pitem.get_pending_tests(), [])