fields_test.py
1 """Tests for acme.fields.""" 2 import datetime 3 import unittest 4 5 import pytz 6 7 from acme import jose 8 9 10 class FixedTest(unittest.TestCase): 11 """Tests for acme.fields.Fixed.""" 12 13 def setUp(self): 14 from acme.fields import Fixed 15 self.field = Fixed('name', 'x') 16 17 def test_decode(self): 18 self.assertEqual('x', self.field.decode('x')) 19 20 def test_decode_bad(self): 21 self.assertRaises(jose.DeserializationError, self.field.decode, 'y') 22 23 def test_encode(self): 24 self.assertEqual('x', self.field.encode('x')) 25 26 def test_encode_override(self): 27 self.assertEqual('y', self.field.encode('y')) 28 29 30 class RFC3339FieldTest(unittest.TestCase): 31 """Tests for acme.fields.RFC3339Field.""" 32 33 def setUp(self): 34 self.decoded = datetime.datetime(2015, 3, 27, tzinfo=pytz.utc) 35 self.encoded = '2015-03-27T00:00:00Z' 36 37 def test_default_encoder(self): 38 from acme.fields import RFC3339Field 39 self.assertEqual( 40 self.encoded, RFC3339Field.default_encoder(self.decoded)) 41 42 def test_default_encoder_naive_fails(self): 43 from acme.fields import RFC3339Field 44 self.assertRaises( 45 ValueError, RFC3339Field.default_encoder, datetime.datetime.now()) 46 47 def test_default_decoder(self): 48 from acme.fields import RFC3339Field 49 self.assertEqual( 50 self.decoded, RFC3339Field.default_decoder(self.encoded)) 51 52 def test_default_decoder_raises_deserialization_error(self): 53 from acme.fields import RFC3339Field 54 self.assertRaises( 55 jose.DeserializationError, RFC3339Field.default_decoder, '') 56 57 58 class ResourceTest(unittest.TestCase): 59 """Tests for acme.fields.Resource.""" 60 61 def setUp(self): 62 from acme.fields import Resource 63 self.field = Resource('x') 64 65 def test_decode_good(self): 66 self.assertEqual('x', self.field.decode('x')) 67 68 def test_decode_wrong(self): 69 self.assertRaises(jose.DeserializationError, self.field.decode, 'y') 70 71 72 if __name__ == '__main__': 73 unittest.main() # pragma: no cover