Esempio n. 1
0
def test_to_json(experiments_yaml_obj):
    event = YamlEvent.from_yaml(experiments_yaml_obj)
    event_properties = {}
    for p in experiments_yaml_obj['properties']:
        event_properties[p['name']] = YamlProperty.from_yaml(p).to_json()

    expected = {
        'version': 1,
        'name': 'Experiment Enrolled',
        'description': 'Track whom has been added to an A/B Test Experiment',
        'rules': {
            'labels': {
                'area': 'experiments'
            },
            'properties': {
                'context': {},
                'traits': {},
                'properties': {
                    'type': 'object',
                    'properties': event_properties,
                    'required': ['experiment']
                }
            },
            'required': ['properties'],
            '$schema': 'http://json-schema.org/draft-07/schema#',
            'type': 'object'
        }
    }

    actual = event.to_json()
    assert expected == actual
Esempio n. 2
0
def test_default_values(property_yaml_obj):
    property_yaml_obj.pop('required')
    property_yaml_obj.pop('allowNull')

    prop = YamlProperty.from_yaml(property_yaml_obj)

    assert prop.required == False
    assert prop.allow_null == False
Esempio n. 3
0
def test_parsing_top_level_attrs(property_yaml_obj):
    prop = YamlProperty.from_yaml(property_yaml_obj)

    assert prop.name == 'variation'
    assert prop.description == 'What variation of the group'
    assert prop.type == 'string'
    assert prop.required == False
    assert prop.allow_null == True
Esempio n. 4
0
def test_to_json(property_yaml_obj):
    prop = YamlProperty.from_yaml(property_yaml_obj)

    expected = {
        'description': 'What variation of the group',
        'pattern': 'experiment|control',
        'type': ['string', 'null']
    }

    actual = prop.to_json()

    assert expected == actual
Esempio n. 5
0
def test_type_any_to_json(property_type_any_yaml_obj):
    prop = YamlProperty.from_yaml(property_type_any_yaml_obj)

    actual = prop.to_json()

    assert 'type' not in actual