class AddressSerializer(BaseCreateSerializer):
id = serializers.UUIDField(read_only=True) latitude = serializers.DecimalField(max_digits=8, decimal_places=5, rounding=ROUND_DOWN) longitude = serializers.DecimalField(max_digits=8, decimal_places=5, rounding=ROUND_DOWN)
class Meta: model = Address fields = ('id', 'label', 'name', 'locality', 'region', 'country', 'postalcode', 'latitude', 'longitude')class Address(BaseContactModel): """ Not every field is required to be a valid address, but at least one "non-foreign-key" field must be populated.
ForeignKey Reqs: either the `location` or `person` FK must be populated, but not both. """ name = models.CharField(max_length=500, blank=True, null=True) locality = models.CharField(max_length=50) region = models.CharField(max_length=50) region_a = models.CharField(max_length=12) postalcode = models.CharField(max_length=12, blank=True, null=True) country = models.CharField(max_length=55) country_a = models.CharField(max_length=3, default="US") latitude = models.DecimalField(decimal_places=5, max_digits=8) longitude = models.DecimalField(decimal_places=5, max_digits=8) label = models.CharField(max_length=700)
def __str__(self): return "id: {}; name: {}; locality: {}; region: {}; country: {}".format(class AddressTests(APITestCase):
def setUp(self): self.person = create_person() self.address = create_address(self.person) self.client.login(username=self.person.username, password=PASSWORD)
def test_truncates_latitude_longitude(self): address = Address.objects.last() serializer = AddressSerializer(address) data = serializer.data data.update({ 'latitude': 123.456789101112, 'longitude': 123.456789101112, }) response = self.client.post('/api/admin/addresses/', data, format='json') self.assertEqual(response.data['latitude'], 123.456789)======================================================================FAIL: test_truncates_latitude_longitude (contact.tests.test_views.AddressTests)----------------------------------------------------------------------Traceback (most recent call last): File "/Users/akrier/github/bsrs/bsrs-django/bigsky/contact/tests/test_views.py", line 136, in test_truncates_latitude_longitude self.assertEqual(response.data['latitude'], 123.456789)AssertionError: ['Ensure that there are no more than 8 digits in total.'] != 123.456789
----------------------------------------------------------------------