Ejemplo n.º 1
0
def test_rules_mapper_duplicate_insert_rule(api_db):
    rules_mapper = mappers.RulesMapper(db=api_db)
    rule = models.Rule('gear_id', 'insert_rule', [], [], [])
    rules_mapper.insert(rule)

    # Try to insert it again
    with pytest.raises(pymongo.errors.DuplicateKeyError):
        rules_mapper.insert(rule)

    # Clean Up
    api_db.project_rules.delete_one({'_id': rule.rule_id})
Ejemplo n.º 2
0
def test_rule_model_copy():
    test_rule = models.Rule('gear_id', 'rule_name', [], [], [])
    test_rule.rule_id = 'Hello'

    copy_test_rule = test_rule.copy()

    test_rule_dict = test_rule.to_dict()
    test_rule_dict.pop('_id')
    copy_test_rule_dict = copy_test_rule.to_dict()

    assert test_rule_dict == copy_test_rule_dict
Ejemplo n.º 3
0
def test_rules_mapper_insert_preset_id_rule(api_db):
    rules_mapper = mappers.RulesMapper(db=api_db)
    rule = models.Rule('gear_id', 'insert_rule', [], [], [])

    # Insert a rule with an id already set
    rule.rule_id = 'preset_id_rule_id'
    rule_id = rules_mapper.insert(rule)

    assert rule_id == 'preset_id_rule_id'
    assert rule_id == rule.rule_id

    # Clean Up
    api_db.project_rules.delete_one({'_id': rule_id})
Ejemplo n.º 4
0
def test_rules_mapper_insert_rule(api_db):
    # Insert Rule
    rules_mapper = mappers.RulesMapper(db=api_db)
    rule = models.Rule('gear_id', 'insert_rule', [], [], [])

    rule_id = rules_mapper.insert(rule)
    assert rule.rule_id == rule_id

    rule_mongo_document = api_db.project_rules.find_one({'_id': rule_id})
    assert rule_mongo_document == rule.to_dict()

    # Clean Up
    api_db.project_rules.delete_one({'_id': rule_id})
Ejemplo n.º 5
0
def test_rules_mapper_insert_copy_rule(api_db):
    rules_mapper = mappers.RulesMapper(db=api_db)
    rule = models.Rule('gear_id', 'insert_rule', [], [], [])
    rules_mapper.insert(rule)

    # Insert a rule copy
    copy_rule_id = rules_mapper.insert(rule.copy())
    assert copy_rule_id != rule.rule_id

    copy_rule_mongo_document = api_db.project_rules.find_one(
        {'_id': copy_rule_id})
    assert copy_rule_mongo_document

    # Clean Up
    api_db.project_rules.delete_one({'_id': rule.rule_id})
    api_db.project_rules.delete_one({'_id': copy_rule_id})
Ejemplo n.º 6
0
def test_rule_model_dict_methods():
    test_rule = models.Rule('gear_id', 'rule_name', [{
        'file.type': 'dicom'
    }], [], [])
    assert getattr(test_rule, 'any', None) is None
    assert test_rule.any_ == [{'file.type': 'dicom'}]

    test_rule_dict = test_rule.to_dict()
    assert test_rule_dict.get('any_') is None
    assert test_rule_dict.get('any') == test_rule.any_

    translated_test_rule = models.Rule.from_dict(test_rule_dict)
    assert getattr(translated_test_rule, 'any', None) is None
    assert translated_test_rule.any_ == [{'file.type': 'dicom'}]

    assert test_rule == translated_test_rule