def test_returns_value_with_db_name_and_uuid(self): sut = UUIDStrategy() for i in xrange(100): database = choice(list(settings.DATABASES.keys())) id = sut.get_next_id(database) self.assertTrue(id.startswith(database)) uuid_value = id[len(database) + 1:] self.assertEqual(str(UUID(uuid_value, version=4)), uuid_value)
def test_uuid_strategy_must_be_passed_a_database(self): sut = UUIDStrategy() with self.assertRaises(AssertionError): sut.get_next_id('im not a database')
def __init__(self, *args, **kwargs): from django_sharding_library.id_generation_strategies import UUIDStrategy kwargs['strategy'] = UUIDStrategy() return super(ShardedUUID4Field, self).__init__(*args, **kwargs)