def setUp(self): gludb.config.default_database( gludb.config.Database('sqlite', filename=':memory:')) SimpleData.ensure_table() ComplexData.ensure_table() InheritedData.ensure_table() self.backup = Backup(aws_access_key='testing', aws_secret_key='testing', bucketname=BACKUP_BUCKET_NAME)
def main(): AWS_ACCESS_KEY = 'Enter-Yours-Here' AWS_SECRET_KEY = 'Enter-Yours-Here' BUCKET_NAME = 'Enter-Yours-Here' if 'Enter-Yours-Here' in [AWS_ACCESS_KEY, AWS_SECRET_KEY, BUCKET_NAME]: print("You need to change this file and supply some AWS information") return backup = Backup(aws_access_key=AWS_ACCESS_KEY, aws_secret_key=AWS_SECRET_KEY, bucketname=BUCKET_NAME) backup.add_class(MyData) backup.run_backup() # Backups are DBObject's! So we'll just pretty print the backup object to # show what we did... def pretty_json(json): import json parsed = json.loads(backup.to_data()) return json.dumps(parsed, indent=4, sort_keys=True) print("Backup completed: here's the backup object") print(pretty_json(backup.to_data()))
def main(): AWS_ACCESS_KEY = 'Enter-Yours-Here' AWS_SECRET_KEY = 'Enter-Yours-Here' BUCKET_NAME = 'Enter-Yours-Here' if 'Enter-Yours-Here' in [AWS_ACCESS_KEY, AWS_SECRET_KEY, BUCKET_NAME]: print("You need to change this file and supply some AWS information") return backup = Backup( aws_access_key=AWS_ACCESS_KEY, aws_secret_key=AWS_SECRET_KEY, bucketname=BUCKET_NAME ) backup.add_class(MyData) backup.run_backup() # Backups are DBObject's! So we'll just pretty print the backup object to # show what we did... def pretty_json(json): import json parsed = json.loads(backup.to_data()) return json.dumps(parsed, indent=4, sort_keys=True) print("Backup completed: here's the backup object") print(pretty_json(backup.to_data()))
def setUp(self): gludb.config.default_database(gludb.config.Database( 'sqlite', filename=':memory:' )) SimpleData.ensure_table() ComplexData.ensure_table() InheritedData.ensure_table() self.backup = Backup( aws_access_key='testing', aws_secret_key='testing', bucketname=BACKUP_BUCKET_NAME )
class BackupRunTesting(unittest.TestCase): def setUp(self): gludb.config.default_database( gludb.config.Database('sqlite', filename=':memory:')) SimpleData.ensure_table() ComplexData.ensure_table() InheritedData.ensure_table() self.backup = Backup(aws_access_key='testing', aws_secret_key='testing', bucketname=BACKUP_BUCKET_NAME) def tearDown(self): # Undo any database setup print(('\n'.join(self.backup.backup_log))) gludb.config.clear_database_config() def assertObjEq(self, obj1, obj2): self.assertTrue(compare_data_objects(obj1, obj2)) def assertObjListsEq(self, lst1, lst2): def key(obj): return getattr(obj, 'id', '') for o1, o2 in zip(sorted(lst1, key=key), sorted(lst2, key=key)): self.assertObjEq(o1, o2) def test_simple_backup(self): simple = [ SimpleData(name='Name', descrip='Descrip', age=i) for i in range(7) ] complex = [ ComplexData(name='Name' + str(i), complex_data={'a': i}) for i in range(7) ] for obj in chain(simple, complex): obj.save() self.assertEquals( 1, self.backup.add_class(SimpleData, include_bases=False)) self.assertEquals( 1, self.backup.add_class(ComplexData, include_bases=False)) self.assertEquals(2, len(self.backup.classes)) bucketname, keyname = self.backup.run_backup() backups = extract_backup(bucketname, keyname) self.assertObjListsEq(simple, extract_one(backups, SimpleData)) self.assertObjListsEq(complex, extract_one(backups, ComplexData)) def test_include_bases_backup(self): simple = [ SimpleData(name='Name', descrip='Descrip', age=i) for i in range(7) ] complex = [ ComplexData(name='Name' + str(i), complex_data={'a': i}) for i in range(7) ] inherited = [InheritedData(only_inherited=i) for i in range(7)] for obj in chain(simple, complex, inherited): obj.save() self.assertEquals( 3, self.backup.add_class(InheritedData, include_bases=True)) self.assertEquals(3, len(self.backup.classes)) bucketname, keyname = self.backup.run_backup() backups = extract_backup(bucketname, keyname) self.assertObjListsEq(simple, extract_one(backups, SimpleData)) self.assertObjListsEq(complex, extract_one(backups, ComplexData)) self.assertObjListsEq(inherited, extract_one(backups, InheritedData)) def test_include_package(self): from testpkg.module import TopData from testpkg.subpkg1.module import MidData1 from testpkg.subpkg2.module import MidData2 from testpkg.subpkg1.subsubpkg.module import BottomData expected_dict = dict() for cls in [TopData, MidData1, MidData2, BottomData]: cls.ensure_table() data = [cls(name='Name' + str(i)) for i in range(7)] for d in data: d.save() expected_dict[backup_name(cls)] = data self.backup.add_package("testpkg") self.assertEquals(4, len(self.backup.classes)) bucketname, keyname = self.backup.run_backup() backups = extract_backup(bucketname, keyname) for cls in [TopData, MidData1, MidData2, BottomData]: expected = expected_dict[backup_name(cls)] self.assertObjListsEq(expected, extract_one(backups, cls))
class BackupRunTesting(unittest.TestCase): def setUp(self): gludb.config.default_database(gludb.config.Database( 'sqlite', filename=':memory:' )) SimpleData.ensure_table() ComplexData.ensure_table() InheritedData.ensure_table() self.backup = Backup( aws_access_key='testing', aws_secret_key='testing', bucketname=BACKUP_BUCKET_NAME ) def tearDown(self): # Undo any database setup print('\n'.join(self.backup.backup_log)) gludb.config.clear_database_config() def assertObjEq(self, obj1, obj2): self.assertTrue(compare_data_objects(obj1, obj2)) def assertObjListsEq(self, lst1, lst2): def key(obj): return getattr(obj, 'id', '') for o1, o2 in zip(sorted(lst1, key=key), sorted(lst2, key=key)): self.assertObjEq(o1, o2) def test_simple_backup(self): simple = [ SimpleData(name='Name', descrip='Descrip', age=i) for i in range(7) ] complex = [ ComplexData(name='Name'+str(i), complex_data={'a': i}) for i in range(7) ] for obj in chain(simple, complex): obj.save() self.assertEquals( 1, self.backup.add_class(SimpleData, include_bases=False) ) self.assertEquals( 1, self.backup.add_class(ComplexData, include_bases=False) ) self.assertEquals(2, len(self.backup.classes)) bucketname, keyname = self.backup.run_backup() backups = extract_backup(bucketname, keyname) self.assertObjListsEq(simple, extract_one(backups, SimpleData)) self.assertObjListsEq(complex, extract_one(backups, ComplexData)) def test_include_bases_backup(self): simple = [ SimpleData(name='Name', descrip='Descrip', age=i) for i in range(7) ] complex = [ ComplexData(name='Name'+str(i), complex_data={'a': i}) for i in range(7) ] inherited = [InheritedData(only_inherited=i) for i in range(7)] for obj in chain(simple, complex, inherited): obj.save() self.assertEquals( 3, self.backup.add_class(InheritedData, include_bases=True) ) self.assertEquals(3, len(self.backup.classes)) bucketname, keyname = self.backup.run_backup() backups = extract_backup(bucketname, keyname) self.assertObjListsEq(simple, extract_one(backups, SimpleData)) self.assertObjListsEq(complex, extract_one(backups, ComplexData)) self.assertObjListsEq(inherited, extract_one(backups, InheritedData)) def test_include_package(self): from testpkg.module import TopData from testpkg.subpkg1.module import MidData1 from testpkg.subpkg2.module import MidData2 from testpkg.subpkg1.subsubpkg.module import BottomData expected_dict = dict() for cls in [TopData, MidData1, MidData2, BottomData]: cls.ensure_table() data = [cls(name='Name'+str(i)) for i in range(7)] for d in data: d.save() expected_dict[backup_name(cls)] = data self.backup.add_package("testpkg") self.assertEquals(4, len(self.backup.classes)) bucketname, keyname = self.backup.run_backup() backups = extract_backup(bucketname, keyname) for cls in [TopData, MidData1, MidData2, BottomData]: expected = expected_dict[backup_name(cls)] self.assertObjListsEq(expected, extract_one(backups, cls))