class ParameterDeclarationSerializationTests(unittest.TestCase): def setUp(self) -> None: self.serializer = DummySerializer() self.declaration = ParameterDeclaration('foo') self.expected_data = dict(name='foo', type=self.serializer.get_type_identifier(self.declaration)) def test_get_serialization_data_all_default(self) -> None: self.expected_data['min_value'] = float('-inf') self.expected_data['max_value'] = float('+inf') self.expected_data['default_value'] = None self.assertEqual(self.expected_data, self.declaration.get_serialization_data(self.serializer)) def test_get_serialization_data_all_floats(self) -> None: self.declaration = ParameterDeclaration('foo', min=-3.1, max=4.3, default=0.2) self.expected_data['min_value'] = -3.1 self.expected_data['max_value'] = 4.3 self.expected_data['default_value'] = 0.2 self.assertEqual(self.expected_data, self.declaration.get_serialization_data(self.serializer)) def test_get_serialization_data_min_max_references(self) -> None: bar_min = ParameterDeclaration('bar_min') bar_max = ParameterDeclaration('bar_max') self.declaration.min_value = bar_min self.declaration.max_value = bar_max self.expected_data['min_value'] = 'bar_min' self.expected_data['max_value'] = 'bar_max' self.expected_data['default_value'] = None self.assertEqual(self.expected_data, self.declaration.get_serialization_data(self.serializer)) def test_deserialize_all_default(self) -> None: data = dict(min_value=float('-inf'), max_value=float('+inf'), default_value=None, name='foo') declaration = ParameterDeclaration.deserialize(self.serializer, **data) self.assertEqual(data['min_value'], declaration.min_value) self.assertEqual(data['max_value'], declaration.max_value) self.assertEqual(data['default_value'], declaration.default_value) self.assertEqual(data['name'], declaration.name) self.assertIsNone(declaration.identifier) def test_deserialize_all_floats(self) -> None: data = dict(min_value=33.3, max_value=44, default_value=41.1, name='foo') declaration = ParameterDeclaration.deserialize(self.serializer, **data) self.assertEqual(data['min_value'], declaration.min_value) self.assertEqual(data['max_value'], declaration.max_value) self.assertEqual(data['default_value'], declaration.default_value) self.assertEqual(data['name'], declaration.name) self.assertIsNone(declaration.identifier) def test_deserialize_min_max_references(self) -> None: data = dict(min_value='bar_min', max_value='bar_max', default_value=-23.5, name='foo') declaration = ParameterDeclaration.deserialize(self.serializer, **data) self.assertEqual(float('-inf'), declaration.min_value) self.assertEqual(float('+inf'), declaration.max_value) self.assertEqual(data['default_value'], declaration.default_value) self.assertEqual(data['name'], declaration.name) self.assertIsNone(declaration.identifier)