def test_timestamp_type_representation(self): self.assertRepr(schema.timestamp, 'schema.timestamp') self.assertRepr(schema.timestamp.iso, 'schema.timestamp.iso') self.assertRepr(schema.timestamp('21-10-2015 04:29 pm'), "schema.timestamp('2015-10-21T16:29:00+00:00')") self.assertRepr(schema.timestamp('21-10-2015 04:29 pm').iso, "schema.timestamp('2015-10-21T16:29:00+00:00').iso") self.assertRepr(schema.timestamp.min('01/01/2015'), "schema.timestamp.min('2015-01-01T00:00:00+00:00')") self.assertRepr(schema.timestamp.max('01/01/2015'), "schema.timestamp.max('2015-01-01T00:00:00+00:00')") self.assertRepr( schema.timestamp.between('01/01/2015', '21/10/2015'), "schema.timestamp.between('2015-01-01T00:00:00+00:00', '2015-10-21T00:00:00+00:00')" ) self.assertRepr(schema.timestamp.format('%Y-%m-%d %H:%M:%S'), "schema.timestamp.format('%Y-%m-%d %H:%M:%S')") self.assertRepr(schema.timestamp.nullable, 'schema.timestamp.nullable')
def test_it_validates_nullable(self): self.assertValidationPasses(None, schema.timestamp.nullable) self.assertValidationPasses(None, schema.timestamp('21/10/2015').nullable) self.assertValidationFails(False, schema.timestamp.nullable) self.assertValidationFails(0, schema.timestamp.nullable) self.assertValidationFails([], schema.timestamp.nullable) self.assertValidationFails({}, schema.timestamp.nullable)
def test_it_validates_value(self): timestamp = schema.timestamp('21-10-2015 04:29 pm') self.assertValidationPasses('21-10-2015 04:29 pm', timestamp) self.assertValidationPasses('21/10/2015 16:29', timestamp) self.assertValidationPasses('2015-10-21T16:29:00+00:00', timestamp) self.assertValidationFails('21-10-2015 04:29 am', timestamp) self.assertValidationFails('?', timestamp)
def test_it_validates_nullable(self): with warnings.catch_warnings(): warnings.simplefilter('ignore') self.assertValidationPasses(None, schema.timestamp.nullable) self.assertValidationPasses( None, schema.timestamp('21/10/2015').nullable) self.assertValidationFails(False, schema.timestamp.nullable) self.assertValidationFails(0, schema.timestamp.nullable) self.assertValidationFails([], schema.timestamp.nullable) self.assertValidationFails({}, schema.timestamp.nullable)
def test_timestamp_type_generator(self): # type data = fake(schema.timestamp) self.assertIsInstance(data, str) # overriding data = fake(schema.timestamp, '21-10-2015 04:29 pm') self.assertEqual(data, '21-10-2015 04:29 pm') # example data = fake(schema.timestamp.example('01/01/2015')) self.assertEqual(data, '01/01/2015') # value data = fake(schema.timestamp('21-10-2015 04:29 pm')) self.assertEqual(data, '2015-10-21 16:29:00')
def test_it_validates_ambiguous_cases(self): timestamp = schema.timestamp('03 Feb 2020') self.assertValidationFails('2020-02-03', timestamp) timestamp = schema.timestamp('03 Feb 2020').format('%Y-%m-%d') self.assertValidationPasses('2020-02-03', timestamp)