def test_methods(self): sellable = self.create_sellable(price=10) field = AccessorField('Test', None, 'base_price', Decimal) # The value is still 10 self.assertEqual(field.get_value(sellable), 10) self.assertEqual(field.get_new_value(sellable), 10) self.assertFalse(field.is_changed(sellable)) # Setting it to 10 again should not change anything field.set_new_value(sellable, 10) self.assertFalse(field.is_changed(sellable)) # Lets update it to 15 field.set_new_value(sellable, 15) # The current value of the object is still 10, but the new value is 15 self.assertEqual(sellable.price, 10) self.assertEqual(field.get_value(sellable), 10) self.assertEqual(field.get_new_value(sellable), 15) self.assertTrue(field.is_changed(sellable)) # Now lest save the value. field.save_value(sellable) self.assertEqual(sellable.price, 15)
def test_cell_data_func(self): field = AccessorField('Test', None, 'unit_index', Decimal) bool_field = AccessorField('Test', None, 'allow_fraction', bool) unit = self.create_sellable_unit() unit.unit_index = 10 search = self._create_search([field, bool_field], [unit], spec=SellableUnit) col = search.columns[0] # Note that below we are testing the properties of the renderer, and not # really the value returned renderer = Gtk.CellRendererText() search._on_cell_data_func(col, renderer, unit, '10') self.assertFalse(renderer.get_property('weight-set')) field.set_new_value(unit, 15) search._on_cell_data_func(col, renderer, unit, '10') self.assertTrue(renderer.get_property('weight-set')) self.assertEqual(renderer.get_property('weight'), Pango.Weight.BOLD) # Boolean column bool_col = search.columns[1] renderer = Gtk.CellRendererToggle() search._on_cell_data_func(bool_col, renderer, unit, None) self.assertEqual(renderer.get_property('active'), True)
def test_accessor(self): sellable = self.create_sellable(price=10) sellable.product.ncm = u'123' field = AccessorField('Test', 'product', 'ncm', unicode) self.assertEqual(field.get_value(sellable), '123') field.set_new_value(sellable, u'456') field.save_value(sellable) self.assertEqual(sellable.product.ncm, '456')
def test_accessor(self): sellable = self.create_sellable(price=10) sellable.product.ncm = u'123' field = AccessorField('Test', 'product', 'ncm', str) self.assertEqual(field.get_value(sellable), '123') field.set_new_value(sellable, u'456') field.save_value(sellable) self.assertEqual(sellable.product.ncm, '456')
def test_cell_data_func(self): field = AccessorField('Test', None, 'base_price', Decimal) sellable = self.create_sellable(price=10) search = self._create_search([field], [sellable]) col = search.columns[0] # Note that below we are testing the properties of the renderer, and not # really the value returned renderer = gtk.CellRendererText() search._on_cell_data_func(col, renderer, sellable, '10') self.assertFalse(renderer.get_property('weight-set')) field.set_new_value(sellable, 15) search._on_cell_data_func(col, renderer, sellable, '10') self.assertTrue(renderer.get_property('weight-set')) self.assertEqual(renderer.get_property('weight'), pango.WEIGHT_BOLD)