Example #1
0
  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))
Example #2
0
    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))
Example #3
0
    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))