def test_excludes(): """Loading of the "excludes" option.""" assert ( load_config( """ jobs: foo: target: foo-$date exclude: foo """ )[0]["foo"].excludes == ["foo"] ) assert ( load_config( """ jobs: foo: target: foo-$date excludes: - foo """ )[0]["foo"].excludes == ["foo"] )
def test_aliases(): """Loading of the "alias" option.""" assert ( load_config( """ jobs: foo: target: foo-$date alias: foo """ )[0]["foo"].aliases == ["foo"] ) assert ( load_config( """ jobs: foo: target: foo-$date aliases: - foo """ )[0]["foo"].aliases == ["foo"] )
def test_no_sources(): # It's ok to load a backup job file without sources load_config(""" jobs: foo: deltas: 1d 2d 3d target: $date """)
def test_no_deltas(): # It's ok to load a job without deltas load_config(""" jobs: foo: sources: /etc target: $date """)
def test_aliases(): """Loading of the "alias" option.""" assert load_config(""" jobs: foo: target: foo-$date alias: foo """)[0]['foo'].aliases == ['foo'] assert load_config(""" jobs: foo: target: foo-$date aliases: - foo """)[0]['foo'].aliases == ['foo']
def test_excludes(): """Loading of the "excludes" option.""" assert load_config(""" jobs: foo: target: foo-$date exclude: foo """)[0]['foo'].excludes == ['foo'] assert load_config(""" jobs: foo: target: foo-$date excludes: - foo """)[0]['foo'].excludes == ['foo']
def test_excludes(): """Loading of the "excludes" option.""" assert load_config(""" jobs: foo: target: foo-$date exclude: foo """)['foo'].excludes == ['foo'] assert load_config(""" jobs: foo: target: foo-$date excludes: - foo """)['foo'].excludes == ['foo']
def test_aliases(): """Loading of the "alias" option.""" assert load_config(""" jobs: foo: target: foo-$date alias: foo """)['foo'].aliases == ['foo'] assert load_config(""" jobs: foo: target: foo-$date aliases: - foo """)['foo'].aliases == ['foo']
def test_empty_job(): """An empty job may be valid in some cases.""" assert load_config(""" target: $name-$date jobs: foo: """)[0]['foo']
def test_global_deltas(): assert len(load_config(""" deltas: 1d 2d 3d jobs: foo: sources: /etc target: $date """)[0]['foo'].deltas) == 3
def test_global_target(): assert load_config(""" target: $name-$date jobs: foo: deltas: 1d 2d 3d sources: sdf """)[0]['foo'].target == '$name-$date'
def test_single_source(): assert load_config(""" target: $name-$date deltas: 1d 2d jobs: foo: source: /etc """)[0]['foo'].sources == ['/etc']
def test_target_has_name(): assert_raises(ConfigError, load_config, """ target: $date jobs: foo: sources: /etc deltas: 1d 2d """) # A job-specific target does not need a name placeholder load_config(""" jobs: foo: sources: /etc deltas: 1d 2d target: $date """)
def test_global_target(): assert ( load_config( """ target: $name-$date jobs: foo: deltas: 1d 2d 3d sources: sdf """ )[0]["foo"].target == "$name-$date" )
def test_single_source(): assert ( load_config( """ target: $name-$date deltas: 1d 2d jobs: foo: source: /etc """ )[0]["foo"].sources == ["/etc"] )
def test_dateformat_inheritance(): r, _ = load_config(""" dateformat: ABC target: $name-$date deltas: 1d 2d jobs: foo: sources: /etc bar: sources: /usr dateformat: "123" """) assert r['foo'].dateformat == 'ABC' assert r['bar'].dateformat == '123'
def test_dateformat_inheritance(): r, _ = load_config( """ dateformat: ABC target: $name-$date deltas: 1d 2d jobs: foo: sources: /etc bar: sources: /usr dateformat: "123" """ ) assert r["foo"].dateformat == "ABC" assert r["bar"].dateformat == "123"
def test_named_delta(): c = load_config(""" target: $name-$date deltas: 1d 10d delta-names: myDelta: 1d 7d 30d otherDelta: 1d 7d 30d 90d jobs: foo: source: /foo/ delta: myDelta bar: source: /foo/ delta: otherDelta baz: source: /foo/ """) assert len(c[0]['baz'].deltas) == 2 assert len(c[0]['foo'].deltas) == 3 assert len(c[0]['bar'].deltas) == 4
def load_config_from_file(filename): f = open(filename, 'rb') try: return load_config(f.read()) finally: f.close()