コード例 #1
0
    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)
コード例 #2
0
ファイル: backup_demo.py プロジェクト: mach21/GLUDB
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()))
コード例 #3
0
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()))
コード例 #4
0
    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
        )
コード例 #5
0
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))
コード例 #6
0
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))