Ejemplo n.º 1
0
def test_date_center_iso_date():
    config = {"center_date": "2050-02-15T12:00:00", "stddev_days": 5}
    spec = _date_iso_spec(**config)
    loader = field_loader(spec)
    supplier = loader.get('foo')
    val = supplier.next(0)
    assert val.startswith('2050-')
Ejemplo n.º 2
0
def _test_invalid_cidr(cidr_value):
    spec = {
        f"network:ip?cidr={cidr_value}": {}
    }
    loader = field_loader(spec)
    with pytest.raises(SpecException):
        loader.get('network')
Ejemplo n.º 3
0
def _test_date_start_format_iso_type(spec):
    loader = field_loader(spec)
    supplier = loader.get('foo')
    # only the date portion of the iso date
    values = list(set([_date_only(supplier.next(i)) for i in range(100)]))
    for instance in ['2050-02-02', '2050-02-03', '2050-02-04']:
        assert instance in values
Ejemplo n.º 4
0
def test_ip_spec_invalid_base_and_cidr_specified():
    spec = {
        "network:ip?cidr=10.0.0.0/24&base=10.0.0": {}
    }
    loader = field_loader(spec)
    with pytest.raises(SpecException):
        loader.get('network')
Ejemplo n.º 5
0
def test_date_end_doesnt_match_format():
    # started to 7 Feb - 5 day offset gives center of 2 Feb +- 1 day
    config = {"duration_days": 1, "end": "07-Feb-2050", "format": "%d-%M-%Y"}
    spec = _date_spec(**config)
    loader = field_loader(spec)
    with pytest.raises(ValueError):
        loader.get('foo')
Ejemplo n.º 6
0
def test_load_yaml_shorthand():
    spec = yaml.load(yaml_shorthand_spec, Loader=yaml.FullLoader)
    loader = field_loader(spec)
    supplier = loader.get('foo')

    assert supplier.next(0) == '"dog"'
    assert supplier.next(1) == '"cat"'
    assert supplier.next(2) == '"pig"'
Ejemplo n.º 7
0
def test_load_yaml():
    spec = yaml.load(yaml_spec, Loader=yaml.FullLoader)
    loader = field_loader(spec)
    supplier = loader.get('foo')

    assert supplier.next(0) == 'dog'
    assert supplier.next(1) == 'cat'
    assert supplier.next(2) == 'pig'
Ejemplo n.º 8
0
def test_combine_fields():
    spec = builder.spec_builder() \
        .add_field("first", builder.values(["bob", "rob", "ann", "sue"])) \
        .add_field("last", builder.values(["smith", "jones", "frank", "wee"])) \
        .add_field("full_name", builder.combine(fields=["first", "last"], join_with=' ')) \
        .build()

    supplier = field_loader(spec).get('full_name')
    assert supplier.next(0) == 'bob smith'
Ejemplo n.º 9
0
def test_select_list_using_loader():
    spec = {
        "pets:select_list_subset?mean=2&stddev=0&join_with= ":
        ['dog', 'cat', 'pig', 'hog', 'bun']
    }
    loader = field_loader(spec)
    supplier = loader.get('pets')
    value = supplier.next(0)
    assert len(value) == 7
Ejemplo n.º 10
0
def test_registry_from_local():
    loader = field_loader(spec)

    reg = registries.Registry
    all_types = reg.types.get_all()
    handler = all_types.get('reverse_string')

    supplier = handler(spec.get('foo'), loader)

    assert supplier.next(0) == 'doe a dear'
Ejemplo n.º 11
0
def test_ip_v4_spec():
    spec = _ipv4_spec(cidr="192.168.0.0/16")

    loader = field_loader(spec)
    supplier = loader.get('network')

    value = supplier.next(0)
    assert value.startswith('192.168.')

    value = supplier.next(256)
    assert value.startswith('192.168.')
Ejemplo n.º 12
0
def test_ip_spec_sample():
    spec = {
        "network": {
            "type": "ip",
            "config": {"cidr": "8.1.2.0/24", "sample": "true"}
        }
    }
    loader = field_loader(spec)
    supplier = loader.get('network')

    value = supplier.next(0)
    assert value is not None
Ejemplo n.º 13
0
def test_registry_from_file():
    # string_reverser, same as above just different key
    load_custom_code(os.path.join(test_dir, 'custom.py'))

    loader = field_loader(spec)

    reg = registries.Registry
    all_types = reg.types.get_all()
    handler = all_types.get('string_reverser')

    supplier = handler(spec.get('foo'), loader)

    assert supplier.next(0) == 'doe a dear'
Ejemplo n.º 14
0
def test_select_list_ref_contains_data():
    spec_builder = builder.spec_builder()
    spec_builder.select_list_subset('pets',
                                    data=None,
                                    ref_name='pets_list',
                                    count=2)
    spec_builder.refs().values(key='pets_list',
                               data=['goat', 'sheep', 'bear', 'cow', 'dragon'])
    loader = field_loader(spec_builder.build())
    supplier = loader.get('pets')
    value = supplier.next(0)
    assert isinstance(value, list)
    assert len(value) == 2
Ejemplo n.º 15
0
def test_combine_list_spec_valid_normal():
    ref_lists = [
        ["ONE", "TWO"],
        ["TWO", "TRE"],
        ["TRE", "ONE"]
    ]
    spec = builder.spec_builder() \
        .add_field("field", builder.combine_list(refs=ref_lists)) \
        .add_ref("ONE", builder.values('uno')) \
        .add_ref("TWO", builder.values('dos')) \
        .add_ref("TRE", builder.values('tres')) \
        .build()

    supplier = field_loader(spec).get('field')
    assert supplier.next(0) == 'unodos'
    assert supplier.next(1) == 'dostres'
    assert supplier.next(2) == 'tresuno'
Ejemplo n.º 16
0
def test_ip_precise_spec():
    spec = {
        "network:ip.precise?cidr=10.0.0.0/24": {}
    }

    loader = field_loader(spec)
    supplier = loader.get('network')

    value = supplier.next(0)
    assert value == '10.0.0.0'

    value = supplier.next(128)
    assert value == '10.0.0.128'

    # /24 means only last octet changes, so should roll over back to zero
    value = supplier.next(256)
    assert value == '10.0.0.0'
Ejemplo n.º 17
0
def _test_ip_spec_invalid_base(base):
    loader = field_loader(_create_ip_spec_with_base(base))
    with pytest.raises(SpecException):
        loader.get('network')
Ejemplo n.º 18
0
def _test_invalid_combine_spec(spec):
    with pytest.raises(SpecException) as err:
        field_loader(spec).get('field')
Ejemplo n.º 19
0
def _test_invalid_select_list_spec(spec):
    with pytest.raises(SpecException):
        field_loader(spec).get('field')
Ejemplo n.º 20
0
def test_combine_list_spec_valid_but_weird2():
    spec = _combine_list_spec([["uno", "dos"]])
    supplier = field_loader(spec).get('field')
    assert supplier.next(0) == 'unodos'
    assert supplier.next(1) == 'unodos'
Ejemplo n.º 21
0
def test_ip_spec_no_octets():
    loader = field_loader(_create_ip_spec_with_base('192.168.1.1'))
    supplier = loader.get('network')
    value = supplier.next(0)
    assert value == '192.168.1.1'
Ejemplo n.º 22
0
def test_ip_spec_three_octets_dot_in_base():
    loader = field_loader(_create_ip_spec_with_base('11.'))
    supplier = loader.get('network')
    value = supplier.next(0)
    assert value.startswith('11.')
    assert not value.startswith('11..')
Ejemplo n.º 23
0
def _get_unique_values(spec, key, iterations=100):
    loader = field_loader(spec)
    supplier = loader.get(key)
    return list(set([supplier.next(i) for i in range(iterations)]))
Ejemplo n.º 24
0
def _test_invalid_precise_spec(spec):
    loader = field_loader(spec)
    with pytest.raises(SpecException):
        loader.get('network')