IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Ignore:
Timestamp:
Oct 18, 2019, 10:35:56 AM (7 years ago)
Author:
fairlamb
Message:

changed the structure so that a full schema must be given, also allowed a full schema to exist

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/ipp-259_genericise_backups/tools/backups/backup_test.py

    r40945 r40949  
    88import backups.utils.errors as errs
    99from backups.backup import Backup
    10 
     10from backups.utils.config_parse_helper import ConfigSchema
    1111
    1212TEST_DEFAULT_CONFIG_FILE = os.path.join(os.path.dirname(__file__), 'testing/backup_test.config')
     
    9292    def test_loading_only_defaults(self, tmpdir):
    9393        config = make_default_config(tmpdir, ['bck1', 'bck2'], False)
    94         backy = Backup(config_file=config)
     94        schema = ConfigSchema(None)
     95        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
     96        backy = Backup(config, schema)
    9597
    9698        assert backy.default_dict['backup_paths'] == \
     
    117119    def test_nothing_should_be_set_to_run_if_not_present(self, tmpdir):
    118120        config = make_default_config(tmpdir, ['bck1', 'bck2'], False)
    119         backy = Backup(config_file=config)
    120 
    121         assert backy.run_copy is False
    122         assert backy.run_tar is False
    123         assert backy.run_rsync is False
    124         assert backy.run_mysqldump is False
     121        schema = ConfigSchema(None)
     122        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
     123        backy = Backup(config, schema)
     124
     125        assert backy.should_run_copy is False
     126        assert backy.should_run_tar is False
     127        assert backy.should_run_rsync is False
     128        assert backy.should_run_mysqldump is False
    125129
    126130    def test_hostname_assertion_fails(self, tmpdir):
    127131        config = make_default_config(tmpdir, ['bck1', 'bck2'])
    128         backy = Backup(config_file=config)
     132        schema = ConfigSchema(None)
     133        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
     134        backy = Backup(config, schema)
    129135
    130136        backy.default_dict['source_machine'] = 'not_a_real_hostname'
     
    133139    def test_hostname_assertion_passes(self, tmpdir):
    134140        config = make_default_config(tmpdir, ['bck1', 'bck2'])
    135         backy = Backup(config_file=config)
     141        schema = ConfigSchema(None)
     142        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
     143        backy = Backup(config, schema)
    136144
    137145        actual_hostname = socket.gethostname()
     
    168176            , 'verbose'        : 'True'
    169177            }
     178        schema = ConfigSchema(None)
     179        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
    170180        bck1_path   = os.path.join(tmpdir, 'bck1')
    171181        bck1b_path  = os.path.join(tmpdir, 'bck1/bobby')
     
    177187        assert not os.path.exists(bck2_path)
    178188        # backup dirs not created automatically
    179         Backup(config)
     189        Backup(config, schema)
    180190        assert not os.path.exists(bck1_path)
    181191        assert not os.path.exists(bck1b_path)
     
    190200            , 'make_dirs'      : 'True'
    191201            }
    192         backy = Backup(config)
     202        backy = Backup(config, schema)
    193203        assert backy.default_dict['make_dirs'] is True
    194204        assert os.path.exists(bck1_path)
     
    204214        source = os.path.join(tmpdir, "and_specific_file.jpeg")
    205215        config['COPY'] = {'sources' : f"{source}"}
     216        schema = ConfigSchema(None)
     217        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
     218        schema.add_section(bckup.COPY_SCHEMA_SECTION)
    206219
    207220        # make file to be copied
    208221        Path(source).touch()
    209222
    210         backy = Backup(config)
     223        backy = Backup(config, schema)
     224        assert backy.should_run_copy is True
    211225
    212226        expected1file = os.path.join(tmpdir, 'bck1', 'and_specific_file.jpeg')
     
    226240        , 'additional_args' : "-v --preserve -r"
    227241        }
     242        schema = ConfigSchema(None)
     243        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
     244        schema.add_section(bckup.COPY_SCHEMA_SECTION)
    228245
    229246        os.makedirs(source1)
    230247        Path(source2).touch()
    231248
    232         backy = Backup(config)
     249        backy = Backup(config, schema)
    233250
    234251        expected1dir  = os.path.join(tmpdir, 'bck1', 'some_dir')
     
    253270        , 'additional_args' : '-r'
    254271        }
     272        schema = ConfigSchema(None)
     273        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
     274        schema.add_section(bckup.COPY_SCHEMA_SECTION)
    255275
    256276        assert not os.path.exists(source)
    257         backy = Backup(config)
     277        backy = Backup(config, schema)
    258278        with pytest.raises(errs.ValidationError):
    259279            backy._run_copy()
     
    271291        Path(source).touch()
    272292        config['COPY'] = {'sources' : f"{source}"}
     293        schema = ConfigSchema(None)
     294        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
     295        schema.add_section(bckup.COPY_SCHEMA_SECTION)
    273296
    274297        assert not os.path.exists(backup_does_not_exist)
    275         backy = Backup(config)
     298        backy = Backup(config, schema)
    276299        with pytest.raises(errs.ValidationError):
    277300            backy._run_copy()
     
    284307        }
    285308        os.makedirs(source)
     309        schema = ConfigSchema(None)
     310        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
     311        schema.add_section(bckup.COPY_SCHEMA_SECTION)
    286312
    287313        with pytest.raises(errs.SubprocessError):
    288             backy = Backup(config)
     314            backy = Backup(config, schema)
    289315            backy._run_copy()
    290316
     
    293319        , 'additional_args' : '-r'
    294320        }
    295         backy = Backup(config)
     321        backy = Backup(config, schema)
    296322
    297323        expected1dir  = os.path.join(tmpdir, 'bck1', 'some_dir')
     
    320346        }
    321347
    322         backy = Backup(config)
     348        schema = ConfigSchema(None)
     349        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
     350        schema.add_section(bckup.TAR_SCHEMA_SECTION)
     351
     352        backy = Backup(config, schema)
    323353
    324354        expected_tar1 = os.path.join(tmpdir, 'bck1', 'cool_tar.tar')
     
    344374        }
    345375
    346         backy = Backup(config)
     376        schema = ConfigSchema(None)
     377        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
     378        schema.add_section(bckup.TAR_SCHEMA_SECTION)
     379
     380        backy = Backup(config, schema)
     381        assert backy.should_run_tar is True
    347382
    348383        date = bckup.get_date()
     
    363398        source = os.path.join(tmpdir, "and_specific_file.jpeg")
    364399        config['RSYNC'] = {'sources' : f"{source}"}
    365 
    366400        # make file to be copied
    367401        Path(source).touch()
    368402
    369         backy = Backup(config)
     403        schema = ConfigSchema(None)
     404        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
     405        schema.add_section(bckup.RSYNC_SCHEMA_SECTION)
     406
     407        backy = Backup(config, schema)
    370408
    371409        expected1file = os.path.join(tmpdir, 'bck1', 'and_specific_file.jpeg')
     
    389427        Path(source2).touch()
    390428
    391         backy = Backup(config)
     429        schema = ConfigSchema(None)
     430        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
     431        schema.add_section(bckup.RSYNC_SCHEMA_SECTION)
     432
     433        backy = Backup(config, schema)
    392434
    393435        expected1dir  = os.path.join(tmpdir, 'bck1', 'some_dir')
     
    413455        }
    414456
     457        schema = ConfigSchema(None)
     458        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
     459        schema.add_section(bckup.RSYNC_SCHEMA_SECTION)
     460
    415461        assert not os.path.exists(source)
    416         backy = Backup(config)
     462        backy = Backup(config, schema)
    417463        with pytest.raises(errs.ValidationError):
    418464            backy._run_rsync()
     
    431477        config['RSYNC'] = {'sources' : f"{source}"}
    432478
     479        schema = ConfigSchema(None)
     480        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
     481        schema.add_section(bckup.RSYNC_SCHEMA_SECTION)
     482
    433483        assert not os.path.exists(backup_does_not_exist)
    434         backy = Backup(config)
     484        backy = Backup(config, schema)
    435485        with pytest.raises(errs.ValidationError):
    436486            backy._run_rsync()
     
    444494        os.makedirs(source)
    445495
    446         backy = Backup(config)
     496        schema = ConfigSchema(None)
     497        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
     498        schema.add_section(bckup.RSYNC_SCHEMA_SECTION)
     499
     500        backy = Backup(config, schema)
     501
    447502        expected1dir  = os.path.join(tmpdir, 'bck1', 'some_dir')
    448503        expected2dir  = os.path.join(tmpdir, 'bck2', 'some_dir')
     
    458513        }
    459514
    460         backy = Backup(config)
     515        backy = Backup(config, schema)
    461516        expected1dir  = os.path.join(tmpdir, 'bck1', 'some_dir')
    462517        expected2dir  = os.path.join(tmpdir, 'bck2', 'some_dir')
     
    491546        }
    492547
    493         backy = Backup(config)
     548        schema = ConfigSchema(None)
     549        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
     550        schema.add_section(bckup.MYSQLDUMP_SCHEMA_SECTION)
     551
     552        backy = Backup(config, schema)
     553        assert backy.should_run_mysqldump is True
    494554
    495555        date = bckup.get_date()
     
    515575        }
    516576
    517         backy = Backup(config)
     577        schema = ConfigSchema(None)
     578        schema.add_section(bckup.DEFAULT_SCHEMA_SECTION)
     579        schema.add_section(bckup.MYSQLDUMP_SCHEMA_SECTION)
     580
     581        backy = Backup(config, schema)
    518582        with pytest.raises(errs.SubprocessError):
    519583            backy._run_mysqldump()
Note: See TracChangeset for help on using the changeset viewer.