Beispiel #1
0
    def test_set_value(self):

        updates = {
            'name': 'revised name',
            'count': 9,
            'rate': 4940234.449994,
            'amount': Decimal('1000000.01'),
            'timestamp': DATETIME_FIXTURE,
            'dunder': 'standing'
        }
        expected = updates.copy()
        expected['dunder'] = "__computed__"

        for field_group_class, field_group, constructor in field_group_fixtures(
                field_group_classes=MUTABLE_FIELD_GROUP_CLASSES):
            instance = constructor(INITIAL_VALUES)
            for field in field_group:
                self.assertEqual(EXPECTED_VALUES[field.name],
                                 field_group._get_value(instance, field))

                field_group.set_value(instance, field, updates[field.name])

                self.assertEqual(
                    expected[field.name],
                    field_group._get_value(instance, field),
                    "set_value() does not match for {}, {}, {}".format(
                        field_group_class, field_group, constructor))
Beispiel #2
0
    def test_get_value(self):

        for _, field_group, constructor in field_group_fixtures():
            instance = constructor(INITIAL_VALUES)
            for field in field_group:
                self.assertEqual(EXPECTED_VALUES[field.name],
                                 field_group._get_value(instance, field))
Beispiel #3
0
 def test_iteration(self):
     for _, field_group, _ in field_group_fixtures():
         self.assertListEqual([('name', str),
                               ('count', int), ('rate', float),
                               ('amount', Decimal), ('timestamp', datetime),
                               ('dunder', str)], [(field.name, field._type)
                                                  for field in field_group])
Beispiel #4
0
    def test_as_dict(self):

        for _, field_group, constructor in field_group_fixtures():
            self.assertEqual(
                EXPECTED_VALUES,
                field_group.as_dict(constructor(INITIAL_VALUES)),
                "as_dict() does not match for {}, {}".format(
                    field_group, constructor))
Beispiel #5
0
    def test_filled_instance(self):

        for _, field_group, constructor in field_group_fixtures():
            new_instance = field_group.fill_instance_from_dict(INITIAL_VALUES)
            self.assertEqual(
                EXPECTED_VALUES, field_group.as_dict(new_instance),
                "fill_instance_from_dict() does not match for {}, {}".format(
                    field_group, constructor))
Beispiel #6
0
    def test_derivation(self):

        for _, field_group, _ in field_group_fixtures():
            internal = field_group.derive(prefix_name_with_underscore)
            self.assertIsInstance(internal, type(field_group))

            for internal_item, public_item in zip(internal, field_group):
                self.assertEqual('_' + public_item._name, internal_item._name)
Beispiel #7
0
    def test_instances_differ_no_differences(self):

        for _, field_group, constructor in field_group_fixtures():
            instance = field_group.fill_instance_from_dict(INITIAL_VALUES)
            other = field_group.fill_instance_from_dict(INITIAL_VALUES)
            self.assertFalse(
                field_group.instances_differ(instance, other),
                "fill_instance_from_dict() does not match for {}, {}".format(
                    field_group, constructor))
Beispiel #8
0
 def test_instances_differ_differences_exist(self):
     modified = INITIAL_VALUES.copy()
     modified['amount'] = Decimal('3.99')
     for _, field_group, constructor in field_group_fixtures():
         instance = field_group.fill_instance_from_dict(INITIAL_VALUES)
         other = field_group.fill_instance_from_dict(modified)
         self.assertTrue(
             field_group.instances_differ(instance, other),
             "fill_instance_from_dict() does not match for {}, {}".format(
                 field_group, constructor))