コード例 #1
0
def test_simple_var_concatenation():
    js_string = """
    {
      "key1":"works"
      ,"key2":"works too"
      ,"key3":"${key1}${key2}"
    }"""
    conf = jc.process(json_string=js_string)
    assert conf['key3'] == "worksworks too"
コード例 #2
0
def test_list_concat_vars():
    js_string = """
    {
      "key1":"test1"
      ,"key2":"test2"
      ,"key3":["${key1}${key2}"]
    }"""
    conf = jc.process(json_string=js_string)
    assert conf['key3'][0] == "test1test2"
コード例 #3
0
ファイル: test_003.py プロジェクト: bang/json-conf-autoref
def test_comments_on_file():
    # Simple test. No vars, one value
    os.environ['MY_VAR1'] = 'test1'
    conf = jc.process(file='config.json')
    assert conf['another-var'] == 'hey'
    assert conf['inside-string'] == "#this is not considered a comment!"
    assert conf['project-name'] == "fantastic-project"
    array_comparing = [1, 2, 3, 4, "fantastic-project", 5, 6, "hey"]
    assert conf['test-array'] == array_comparing
コード例 #4
0
def test_list_vars():
    js_string = """
    {
      "key1":"something"
      ,"key2":[1,2,3,"${key1}"]
    }"""
    conf = jc.process(json_string=js_string)
    print(str(conf['key2']))
    assert str(conf['key2'][3]) == "something"
コード例 #5
0
ファイル: test_002.py プロジェクト: bang/json-conf-autoref
def test_common_use():
    # Simple test. No vars, one value
    os.environ['MY_VAR1'] = 'test1'
    js_string = """
    {
      "no-var-test":"works",
      "test-env-var":"$ENV{MY_VAR1}"
    }"""
    conf = jc.process(json_string=js_string)
    assert conf['no-var-test'] == 'works'
    assert conf['test-env-var'] == 'test1'
コード例 #6
0
def test_simple_no_vars():
    # Simple test. No vars, one value
    js_string = """
    {
      "no-var-test":"works"
    }"""

    conf = jc.process(json_string=js_string)
    assert conf['no-var-test'] == 'works'

    # More than one value
    js_string = """
    {
      "key1":"works"
      ,"key2":"works too"
      ,"key3":"all good!"
    }"""

    conf = jc.process(json_string=js_string)
    assert conf['key1'] == 'works'
    assert conf['key2'] == 'works too'
    assert conf['key3'] == 'all good!'
コード例 #7
0
def test_hierarchycal_var_concatenation():
    js_string = """
    {
      "key1":"works"
      ,"key2":"works too"
      ,"levels":{
          "level1":{
              "concat":"${key1}${key2}"
          }
      }
    }"""
    conf = jc.process(json_string=js_string)
    assert conf['levels']['level1']['concat'] == "worksworks too"
コード例 #8
0
def test_list_no_vars():
    js_string = """
    {
      "key1":[1,2,3,"works"]
      ,"key2":"works too"
      ,"key3":"works fine"
    }"""
    conf = jc.process(json_string=js_string)
    if str(conf['key1'][0]) == "1" and \
        str(conf['key1'][1]) == "2" and \
        str(conf['key1'][2]) == "3" and \
        str(conf['key1'][3]) == "works":
        assert True
コード例 #9
0
def test_list_sub_no_vars():
    js_string = """
    {
      "key1":{
          "key2":[1,2,3,"works"]
          ,"key3":{
              "key4":[4,5,6,"This is level 4"]
          ,"level2":"This is level 2"
          }
      }
    }"""
    conf = jc.process(json_string=js_string)
    print(str(conf['key1']))
    assert str(conf['key1']['key2'][3]) == "works"
コード例 #10
0
def test_list_sub_with_vars():
    js_string = """
    {
      "key1":{
          "key2":[1,2,3,"works"]
          ,"key3":{
              "key4":[4,5,6,"${var_to_list}"]
          }
          ,"level2":"This is level 2"

      }
      ,"var_to_list":"test"
    }"""
    conf = jc.process(json_string=js_string)
    assert str(conf['key1']['key3']['key4'][3]) == "test"
コード例 #11
0
def test_hierarchycal_var_and_chars_concatenation():
    js_string = """
    {
      "key1":"works"
      ,"key2":"works too"
      ,"key3":"works fine"
      ,"levels":{
          "level1":{
              "concat":"${key1}/${key2}#${key3}:33"
          }
      }
    }"""
    conf = jc.process(json_string=js_string)
    assert conf['levels']['level1'][
        'concat'] == "works/works too#works fine:33"
コード例 #12
0
ファイル: test_002.py プロジェクト: bang/json-conf-autoref
def test_deep_with_concatenation2():
    # Simple test. No vars, one value
    os.environ['MY_VAR1'] = 'test1'
    os.environ['MY_VAR2'] = 'test2'
    js_string = """
    {
      "no-var-test":"works",
      "level1":{
        "level2":{
            "level3":"$ENV{MY_VAR1}--- # foobar$ENV{MY_VAR2}"
        }
      }
    }"""
    conf = jc.process(json_string=js_string)
    assert conf['no-var-test'] == 'works'
    assert conf['level1']['level2']['level3'] == 'test1--- # foobartest2'
コード例 #13
0
def test_complex_list_structure():
    js_string = """
  {
	"local-base":"test-local-base",
	"inputs":[{
		"driver":"http",
        "options":{
		    "urls":["https://whatever/part-00000.json.gz"],
            "download-dir":"${local-base}/downloads",
            "test-bool":true
        }
	}]
  }"""
    conf = jc.process(json_string=js_string)
    assert str(conf['inputs'][0]['options']
               ['download-dir']) == "test-local-base/downloads"
コード例 #14
0
def test_deep_concat_vars():
    js_string = """
    {
      "key1":"test1"
      ,"key2":{
          "level2-1":"this is ${key1}"
          ,"level2-2":"hey"
          ,"level2-3":"${key1}${key3}"
          ,"level2-4":"${key1}${key2.level2-2}"
      }
      ,"key3":"test2"
    }"""
    conf = jc.process(json_string=js_string)
    assert conf['key2']["level2-1"] == "this is test1"
    assert conf['key2']["level2-3"] == "test1test2"
    assert conf['key2']["level2-4"] == "test1hey"
コード例 #15
0
def test_list_concat_deep_vars():
    js_string = """
    {
      "key1":"test1"
      ,"key2":"test2"
      ,"key3":{
          "level1":{
              "level2":{
                  "level2-list":["${key1}${key2}"]
              }
          ,"level1-value":"This is level1"
          }
      }
    }"""
    conf = jc.process(json_string=js_string)
    assert conf['key3']['level1']['level2']['level2-list'][0] == "test1test2"
コード例 #16
0
def test_hirerarchy_no_vars_on_values():
    # Hierarchy with no var references
    js_string = """
        {
          "key1":"works"
          ,"key2":"works too"
          ,"key3":"all good!"
          ,"levels":{
              "level1":{
                  "level2-var":"you're on level 2"
              }
          }
          ,"level2-var-reference":"${levels.level1.level2-var}"
        }"""

    conf = jc.process(json_string=js_string)
    assert conf['level2-var-reference'] == "you're on level 2"
コード例 #17
0
ファイル: test_003.py プロジェクト: bang/json-conf-autoref
def test_comments_on_string():
    js_string = """
    { #comment1
        "project-name":"fantastic-project",
    #comment2    "test-ref":"#should-not-be-interpret-as-comment${project-name}",
        #comment3
        "another-var":"hey", #comment4
        "test-array":[1,2,3,4,"${project-name}",5,6,"${another-var}"],
        "inside-string":"#this is not considered a comment!"
        #comment5
    } #comment6"""
    conf = jc.process(json_string=js_string)
    assert conf['another-var'] == 'hey'
    assert conf['inside-string'] == "#this is not considered a comment!"
    assert conf['project-name'] == "fantastic-project"
    array_comparing = [1, 2, 3, 4, "fantastic-project", 5, 6, "hey"]
    assert conf['test-array'] == array_comparing