def test_datetime_field(self): purgeFieldValueCache() # make sure that boundmethod must not be cached. year_field = self.root.form.datetime_field.sub_form.get_field('year', include_disabled=1) self.assertEqual(True, type(year_field.overrides['items']) is BoundMethod) cache_size = len(Form._field_value_cache) year_field.get_value('items') # See Formulator/StandardFields.py(line:174) # there are two get_value, start_datetime and end_datetime cache_size += 2 # make sure that boundmethod is not cached(cache size does not change) self.assertEqual(True, ('Form.get_value', self.root.form.datetime_field._p_oid, self.root.form.datetime_field._p_oid, 'start_datetime' ) in Form._field_value_cache) self.assertEqual(True, ('Form.get_value', self.root.form.datetime_field._p_oid, self.root.form.datetime_field._p_oid, 'end_datetime' ) in Form._field_value_cache) self.assertEqual(False, ('Form.get_value', year_field._p_oid, year_field._p_oid, 'items' ) in Form._field_value_cache) self.assertEqual(cache_size, len(Form._field_value_cache)) year_field.get_value('size') year_field.get_value('default') self.assertEqual(cache_size+2, len(Form._field_value_cache))
def test_format_precision(self): self.field.values["precision"] = 0 self.assertEquals("12", self.widget.format_value(self.field, 12.34)) # value is rounded self.assertEquals("13", self.widget.format_value(self.field, 12.9)) purgeFieldValueCache() # call this before changing internal field values. self.field.values["precision"] = 2 self.assertEquals("0.01", self.widget.format_value(self.field, 0.011)) # value is rounded self.assertEquals("0.01", self.widget.format_value(self.field, 0.009999)) self.assertEquals("1.00", self.widget.format_value(self.field, sum([0.1] * 10))) self.assertEquals("566.30", self.widget.format_value(self.field, 281.80 + 54.50 + 230.00))
def test_datetime_field(self): purgeFieldValueCache() # make sure that boundmethod must not be cached. year_field = self.root.form.datetime_field.sub_form.get_field("year", include_disabled=1) self.assertEqual(True, type(year_field.overrides["items"]) is BoundMethod) cache_size = len(Form._field_value_cache) year_field.get_value("items") # See Formulator/StandardFields.py(line:174) # there are two get_value, start_datetime and end_datetime cache_size += 2 # make sure that boundmethod is not cached(cache size does not change) self.assertEqual( True, ( "Form.get_value", self.root.form.datetime_field._p_oid, self.root.form.datetime_field._p_oid, "start_datetime", ) in Form._field_value_cache, ) self.assertEqual( True, ( "Form.get_value", self.root.form.datetime_field._p_oid, self.root.form.datetime_field._p_oid, "end_datetime", ) in Form._field_value_cache, ) self.assertEqual( False, ("Form.get_value", year_field._p_oid, year_field._p_oid, "items") in Form._field_value_cache ) self.assertEqual(cache_size, len(Form._field_value_cache)) year_field.get_value("size") year_field.get_value("default") self.assertEqual(cache_size + 2, len(Form._field_value_cache))