示例#1
0
def test_it__jsondict_from_model():
    from alchemyjsonschema import AlsoChildrenWalker, SchemaFactory
    from .models import Group, User

    schema_factory = SchemaFactory(AlsoChildrenWalker)
    target = _makeOne(schema_factory, Group)

    group = Group(name="ravenclaw",
                  color="blue",
                  created_at=_datetime(2000, 1, 1, 10, 0, 0, 0))
    group.users = [
        User(name="foo", created_at=_datetime(2000, 1, 1, 10, 0, 0, 0))
    ]

    jsondict = target.jsondict_from_object(group, verbose=True)

    import json
    assert json.dumps(jsondict)

    assert jsondict == {
        'color':
        'blue',
        'name':
        'ravenclaw',
        'users': [{
            'name': 'foo',
            'pk': None,
            'created_at': '2000-01-01T10:00:00+00:00'
        }],
        'pk':
        None,
        'created_at':
        '2000-01-01T10:00:00+00:00'
    }
def test_it_complex2():
    from alchemyjsonschema import SchemaFactory, AlsoChildrenWalker
    from alchemyjsonschema.dictify import ModelLookup
    import alchemyjsonschema.tests.models as models
    from datetime import datetime

    factory = SchemaFactory(AlsoChildrenWalker)
    group_schema = factory(models.Group)

    created_at = datetime(2000, 1, 1)
    created_at2 = datetime(2001, 1, 1)
    user_dict = dict(name="foo", created_at=created_at)  # pk is not found
    group_dict = dict(name="ravenclaw",
                      color="blue",
                      created_at=created_at2,
                      users=[user_dict])
    modellookup = ModelLookup(models)

    result = _callFUT(group_dict, group_schema, modellookup, strict=False)

    assert isinstance(result, models.Group)
    assert result.pk is None
    assert result.name == "ravenclaw"
    assert result.color == "blue"
    assert result.created_at == datetime(2001, 1, 1)

    assert isinstance(result.users[0], models.User)
    assert result.users[0].name == "foo"
    assert result.users[0].created_at == created_at

    assert modellookup.name_stack == []
示例#3
0
def test_it__object_from_dict():
    from alchemyjsonschema import AlsoChildrenWalker, SchemaFactory
    from .models import Group, User

    schema_factory = SchemaFactory(AlsoChildrenWalker)
    target = _makeOne(schema_factory, Group)

    group_dict = {
        'color':
        'blue',
        'users': [{
            'created_at': _datetime(2000, 1, 1, 10, 0, 0, 0),
            'pk': None,
            'name': 'foo'
        }],
        'created_at':
        _datetime(2000, 1, 1, 10, 0, 0, 0),
        'pk':
        None,
        'name':
        'ravenclaw'
    }

    group = target.object_from_dict(group_dict, strict=False)

    assert isinstance(group, Group)
    assert group.color == "blue"
    assert group.name == "ravenclaw"
    assert group.pk is None
    assert group.created_at == _datetime(2000, 1, 1, 10, 0, 0, 0)

    assert (len(group.users) == 1) and (isinstance(group.users[0], User))
    assert group.users[0].name == "foo"
    assert group.users[0].pk is None
    assert group.users[0].created_at == _datetime(2000, 1, 1, 10, 0, 0, 0)
示例#4
0
def test_it__dict_from_model_object():
    from alchemyjsonschema import AlsoChildrenWalker, SchemaFactory
    from .models import Group, User

    schema_factory = SchemaFactory(AlsoChildrenWalker)
    target = _makeOne(schema_factory, Group)

    group = Group(name="ravenclaw",
                  color="blue",
                  created_at=_datetime(2000, 1, 1, 10, 0, 0, 0))
    group.users = [
        User(name="foo", created_at=_datetime(2000, 1, 1, 10, 0, 0, 0))
    ]

    group_dict = target.dict_from_object(group)
    assert group_dict == {
        'color':
        'blue',
        'users': [{
            'created_at': _datetime(2000, 1, 1, 10, 0, 0, 0),
            'pk': None,
            'name': 'foo'
        }],
        'created_at':
        _datetime(2000, 1, 1, 10, 0, 0, 0),
        'pk':
        None,
        'name':
        'ravenclaw'
    }
def test_it__jsondict_from_model():
    from alchemyjsonschema import StructuralWalker, SchemaFactory
    from .models import Group, User

    schema_factory = SchemaFactory(StructuralWalker)
    target = _makeOne(schema_factory, Group)

    group = Group(name="ravenclaw",
                  color="blue",
                  created_at=_datetime(2000, 1, 1, 10, 0, 0, 0))
    group.users = [
        User(name="foo", created_at=_datetime(2000, 1, 1, 10, 0, 0, 0))
    ]

    jsondict = target.jsondict_from_object(group, verbose=True)

    import json

    assert json.dumps(jsondict)

    assert jsondict == {
        "color":
        "blue",
        "name":
        "ravenclaw",
        "users": [{
            "name": "foo",
            "pk": None,
            "created_at": "2000-01-01T10:00:00+00:00"
        }],
        "pk":
        None,
        "created_at":
        "2000-01-01T10:00:00+00:00",
    }
def test_it__dict_from_model_object():
    from alchemyjsonschema import StructuralWalker, SchemaFactory
    from .models import Group, User

    schema_factory = SchemaFactory(StructuralWalker)
    target = _makeOne(schema_factory, Group)

    group = Group(name="ravenclaw",
                  color="blue",
                  created_at=_datetime(2000, 1, 1, 10, 0, 0, 0))
    group.users = [
        User(name="foo", created_at=_datetime(2000, 1, 1, 10, 0, 0, 0))
    ]

    group_dict = target.dict_from_object(group)
    assert group_dict == {
        "color":
        "blue",
        "users": [{
            "created_at": _datetime(2000, 1, 1, 10, 0, 0, 0),
            "pk": None,
            "name": "foo",
        }],
        "created_at":
        _datetime(2000, 1, 1, 10, 0, 0, 0),
        "pk":
        None,
        "name":
        "ravenclaw",
    }
def test_it__object_from_dict():
    from alchemyjsonschema import StructuralWalker, SchemaFactory
    from .models import Group, User

    schema_factory = SchemaFactory(StructuralWalker)
    target = _makeOne(schema_factory, Group)

    group_dict = {
        "color":
        "blue",
        "users": [{
            "created_at": _datetime(2000, 1, 1, 10, 0, 0, 0),
            "pk": None,
            "name": "foo",
        }],
        "created_at":
        _datetime(2000, 1, 1, 10, 0, 0, 0),
        "pk":
        None,
        "name":
        "ravenclaw",
    }

    group = target.object_from_dict(group_dict, strict=False)

    assert isinstance(group, Group)
    assert group.color == "blue"
    assert group.name == "ravenclaw"
    assert group.pk is None
    assert group.created_at == _datetime(2000, 1, 1, 10, 0, 0, 0)

    assert (len(group.users) == 1) and (isinstance(group.users[0], User))
    assert group.users[0].name == "foo"
    assert group.users[0].pk is None
    assert group.users[0].created_at == _datetime(2000, 1, 1, 10, 0, 0, 0)
def test_it_nested():
    from alchemyjsonschema.tests import models
    from alchemyjsonschema import SchemaFactory, AlsoChildrenWalker
    from alchemyjsonschema.dictify import ModelLookup

    factory = SchemaFactory(AlsoChildrenWalker)
    a_schema = factory(models.A0)
    modellookup = ModelLookup(models)

    params = {
        "name":
        "a0",
        "children": [{
            "name":
            "a00",
            "children": [{
                "name": "a000"
            }, {
                "name": "a001"
            }, {
                "name": "a002"
            }]
        }, {
            "name": "a10",
            "children": [{
                "name": "a010"
            }]
        }]
    }

    result = _callFUT(params, a_schema, modellookup, strict=False)
    assert len(result.children) == 2
    assert len(result.children[0].children) == 3
    assert len(result.children[1].children) == 1
def test_it_complex__relation_decision():
    from alchemyjsonschema import SchemaFactory, StructuralWalker, RelationDesicion
    from alchemyjsonschema.dictify import ModelLookup
    import alchemyjsonschema.tests.models as models
    from datetime import datetime

    factory = SchemaFactory(StructuralWalker,
                            relation_decision=RelationDesicion())
    user_schema = factory(models.User)

    created_at = datetime(2000, 1, 1)
    created_at2 = datetime(2001, 1, 1)
    group_dict = dict(name="ravenclaw", color="blue", created_at=created_at2)
    user_dict = dict(name="foo", created_at=created_at,
                     group=group_dict)  # pk is not found
    modellookup = ModelLookup(models)

    result = _callFUT(user_dict, user_schema, modellookup, strict=False)

    assert isinstance(result, models.User)
    assert result.pk is None
    assert result.name == "foo"
    assert result.created_at == datetime(2000, 1, 1)
    assert result.group_id is None

    assert isinstance(result.group, models.Group)
    assert result.group.name == "ravenclaw"
    assert result.group.color == "blue"
    assert result.group.created_at == created_at2

    assert modellookup.name_stack == []
示例#10
0
def generate_schema_definition(model_name):
    model = looking_for_class_by_name(model_name)
    if model:
        factory = SchemaFactory(SingleModelWalker)
        return jsonify(factory(model))
    else:
        return jsonify({})
def test_it_complex__partial4():
    from alchemyjsonschema import SchemaFactory, StructuralWalker
    from alchemyjsonschema.dictify import ModelLookup
    import alchemyjsonschema.tests.models as models
    from datetime import datetime

    factory = SchemaFactory(StructuralWalker)
    group_schema = factory(models.Group)

    created_at2 = datetime(2001, 1, 1)
    group_dict = dict(name="ravenclaw",
                      color="blue",
                      created_at=created_at2,
                      users=[])
    modellookup = ModelLookup(models)

    result = _callFUT(group_dict, group_schema, modellookup, strict=False)

    assert isinstance(result, models.Group)
    assert result.pk is None
    assert result.name == "ravenclaw"
    assert result.color == "blue"
    assert result.created_at == datetime(2001, 1, 1)

    assert modellookup.name_stack == []
def test_it_complex__fullset_decision():
    from alchemyjsonschema import (
        SchemaFactory,
        StructuralWalker,
        UseForeignKeyIfPossibleDecision,
    )
    from alchemyjsonschema.dictify import ModelLookup
    import alchemyjsonschema.tests.models as models
    from datetime import datetime

    factory = SchemaFactory(
        StructuralWalker, relation_decision=UseForeignKeyIfPossibleDecision())
    user_schema = factory(models.User)

    created_at = datetime(2000, 1, 1)
    user_dict = dict(name="foo", created_at=created_at,
                     group_id=1)  # pk is not found
    modellookup = ModelLookup(models)

    result = _callFUT(user_dict, user_schema, modellookup, strict=False)

    assert isinstance(result, models.User)
    assert result.pk is None
    assert result.name == "foo"
    assert result.created_at == datetime(2000, 1, 1)
    assert result.group_id is 1
    assert modellookup.name_stack == []
示例#13
0
def test_it__dictify():
    from alchemyjsonschema import SchemaFactory, StructuralWalker
    from alchemyjsonschema.tests.models import Group, User
    from datetime import datetime

    factory = SchemaFactory(StructuralWalker)
    group_schema = factory(Group)

    created_at = datetime(2000, 1, 1)
    users = [
        User(name="foo", created_at=created_at),
        User(name="boo", created_at=created_at),
    ]
    group = Group(name="ravenclaw", color="blue", users=users, created_at=created_at)

    result = _callFUT(group, group_schema)
    assert result == {
        "pk": None,
        "color": "blue",
        "name": "ravenclaw",
        "created_at": created_at,
        "users": [
            {"pk": None, "name": "foo", "created_at": created_at},
            {"pk": None, "name": "boo", "created_at": created_at},
        ],
    }
示例#14
0
 def build_transformer(self, walker, decision, layout):
     walker_factory = detect_walker_factory(walker)
     relation_decision = detect_decision(decision)
     schema_factory = SchemaFactory(walker_factory,
                                    relation_decision=relation_decision)
     transformer_factory = detect_transformer(layout)
     return transformer_factory(schema_factory).transform
示例#15
0
def test_it_normalize2():
    from alchemyjsonschema import SchemaFactory, AlsoChildrenWalker
    from alchemyjsonschema.tests.models import User

    factory = SchemaFactory(AlsoChildrenWalker)
    user_schema = factory(User)
    user_dict = {
        "pk": None,
        'name': 'foo',
        "created_at": None,
        "group": {
            "name": "ravenclaw",
            "color": "blue",
            "pk": None,
            "created_at": None
        }
    }

    result = _callFUT2(user_dict, user_schema)
    assert result == {
        "pk": None,
        'name': 'foo',
        "created_at": None,
        "group": {
            "name": "ravenclaw",
            "color": "blue",
            "pk": None,
            "created_at": None
        }
    }
def test_it_update_parent__full():
    from alchemyjsonschema.tests import models as m
    from alchemyjsonschema import SchemaFactory, AlsoChildrenWalker
    from alchemyjsonschema.dictify import ModelLookup

    factory = SchemaFactory(AlsoChildrenWalker)
    a_schema = factory(m.A0)
    modellookup = ModelLookup(m)

    a0 = m.A0(pk=1,
              name="a0",
              children=[m.A1(pk=1, name="a00"),
                        m.A1(pk=2, name=("a01"))])

    assert a0.name == "a0"
    params = {
        "pk": 1,
        "name": "updated",
        "children": [{
            "name": "a00",
            "pk": 1
        }, {
            "name": "a01",
            "pk": 2
        }]
    }
    _callFUT(a0, params, a_schema, modellookup)
    assert a0.name == "updated"
def test_it_create_child():
    from alchemyjsonschema.tests import models as m
    from alchemyjsonschema import SchemaFactory, StructuralWalker
    from alchemyjsonschema.dictify import ModelLookup

    factory = SchemaFactory(StructuralWalker)
    a_schema = factory(m.A0)
    modellookup = ModelLookup(m)

    a0 = m.A0(
        pk=1, name="a0", children=[m.A1(pk=1, name="a00"), m.A1(pk=2, name=("a01"))]
    )

    assert len(a0.children) == 2
    params = {
        "pk": 1,
        "name": "a0",
        "children": [
            {"name": "new"},
            {"name": "a00", "pk": 1},
            {"name": "update", "pk": 2},
        ],
    }
    _callFUT(a0, params, a_schema, modellookup)
    assert len(a0.children) == 3
示例#18
0
def test_it__normalize():
    from alchemyjsonschema import SchemaFactory, StructuralWalker
    from alchemyjsonschema.tests.models import Group
    from datetime import datetime
    import pytz

    created_at = datetime(2000, 1, 1, 0, 0, 0, 0, pytz.utc)

    factory = SchemaFactory(StructuralWalker)
    group_schema = factory(Group)
    group_dict = {
        "name": "ravenclaw",
        "created_at": "2000-01-01T00:00:00+00:00",
        "color": "blue",
        "pk": None,
        "users": [
            {"name": "foo", "created_at": "2000-01-01T00:00:00+00:00", "pk": None},
            {"name": "boo", "created_at": "2000-01-01T00:00:00+00:00", "pk": None},
        ],
    }

    result = _callFUT2(group_dict, group_schema)
    assert result == {
        "pk": None,
        "color": "blue",
        "name": "ravenclaw",
        "created_at": created_at,
        "users": [
            {"pk": None, "name": "foo", "created_at": created_at},
            {"pk": None, "name": "boo", "created_at": created_at},
        ],
    }
示例#19
0
def get_json_schema(data_type):

    factory = SchemaFactory(StructuralWalker)

    a_dict = mydict(factory(models.__dict__[data_type]))

    #_dict = {"properties": {"accession_number": {"title": "accession_number", "type": "string"}, "exp_name": {"title": "exp_name", "type": "string"}, "has_fastq_files": {"title": "has_fastq_files", "type": "boolean"}, "samples": {"title": "samples", "type": "array", "items": {"$ref": "#/definitions/RNASeqDataSet"}}, "_experimentmetadata": {"title": "_experimentmetadata", "type": "array", "items": {"$ref": "#/definitions/ExperimentMetadata"}}}, "type": "object", "title": "RNASeqExperiment", "definitions": {"ExperimentMetadata": {"properties": {"name": {"maxLength": 255, "type": "string", "title": "name"}, "id": {"title": "id", "type": "integer"}, "description": {"title": "description", "type": "string"}, "method": {"title": "method", "type": "array", "items": {"$ref": "#/definitions/Method"}}, "taxon": {"title": "taxon", "type": "array", "items": {"$ref": "#/definitions/Taxon"}}, "experiment_design": {"title": "experiment_design", "type": "array", "items": {"$ref": "#/definitions/ExperimentDesign"}}, "experiment_type": {"title": "experiment_type", "type": "array", "items": {"$ref": "#/definitions/ExperimentType"}}, "resource": {"title": "resource", "type": "array", "items": {"$ref": "#/definitions/Resource"}}}, "type": "object", "title": "ExperimentMetadata", "required": ["id"]}, "Conditions": {"properties": {"id": {"title": "id", "type": "integer"}, "growth_status": {"maxLength": 255, "type": "string", "title": "growth_status"}, "media": {"maxLength": 255, "type": "string", "title": "media"}, "temperature": {"title": "temperature", "type": "number"}, "ph": {"title": "ph", "type": "number"}, "growth_system": {"maxLength": 255, "type": "string", "title": "growth_system"}}, "type": "object", "title": "Conditions", "required": ["id"]}, "Characteristic": {"properties": {"id": {"title": "id", "type": "integer"}, "category": {"maxLength": 255, "type": "string", "title": "category"}, "value": {"maxLength": 255, "type": "string", "title": "value"}}, "type": "object", "title": "Characteristic", "required": ["id"]}, "ReferenceGenome": {"properties": {"namespace": {"maxLength": 255, "type": "string", "title": "namespace"}, "organism_strain": {"maxLength": 255, "type": "string", "title": "organism_strain"}, "download_url": {"maxLength": 255, "type": "string", "title": "download_url"}, "_metadata": {"title": "_metadata", "type": "array", "items": {"$ref": "#/definitions/Metadata"}}}, "type": "object", "title": "ReferenceGenome", "required": []}, "Reaction": {"properties": {"reaction_id": {"title": "reaction_id", "type": "integer"}, "coefficient": {"title": "coefficient", "type": "number"}, "_is_reactant": {"title": "_is_reactant", "type": "boolean"}, "_is_product": {"title": "_is_product", "type": "boolean"}, "_is_modifier": {"title": "_is_modifier", "type": "boolean"}, "rxn_type": {"maxLength": 255, "type": "string", "title": "rxn_type"}, "compound": {"title": "compound", "type": "array", "items": {"$ref": "#/definitions/Compound"}}, "kinetic_law": {"title": "kinetic_law", "type": "array", "items": {"$ref": "#/definitions/KineticLaw"}}}, "type": "object", "title": "Reaction", "required": ["reaction_id"]}, "ExperimentType": {"properties": {"id": {"title": "id", "type": "integer"}, "name": {"maxLength": 255, "type": "string", "title": "name"}}, "type": "object", "title": "ExperimentType", "required": ["id"]}, "Taxon": {"properties": {"ncbi_id": {"title": "ncbi_id", "type": "integer"}, "name": {"maxLength": 255, "type": "string", "title": "name"}, "_metadata": {"title": "_metadata", "type": "array", "items": {"$ref": "#/definitions/Metadata"}}}, "type": "object", "title": "Taxon", "required": ["ncbi_id"]}, "Metadata": {"properties": {"id": {"title": "id", "type": "integer"}, "name": {"maxLength": 255, "type": "string", "title": "name"}, "taxon": {"title": "taxon", "type": "array", "items": {"$ref": "#/definitions/Taxon"}}, "method": {"title": "method", "type": "array", "items": {"$ref": "#/definitions/Method"}}, "cell_line": {"title": "cell_line", "type": "array", "items": {"$ref": "#/definitions/CellLine"}}, "synonym": {"title": "synonym", "type": "array", "items": {"$ref": "#/definitions/Synonym"}}, "conditions": {"title": "conditions", "type": "array", "items": {"$ref": "#/definitions/Conditions"}}, "cell_compartment": {"title": "cell_compartment", "type": "array", "items": {"$ref": "#/definitions/CellCompartment"}}, "characteristic": {"title": "characteristic", "type": "array", "items": {"$ref": "#/definitions/Characteristic"}}, "variable": {"title": "variable", "type": "array", "items": {"$ref": "#/definitions/Variable"}}}, "type": "object", "title": "Metadata", "required": ["id"]}, "Compound": {"properties": {"compound_name": {"maxLength": 255, "type": "string", "title": "compound_name"}, "description": {"maxLength": 255, "type": "string", "title": "description"}, "comment": {"maxLength": 255, "type": "string", "title": "comment"}, "_is_name_ambiguous": {"title": "_is_name_ambiguous", "type": "boolean"}, "structure": {"title": "structure", "type": "array", "items": {"$ref": "#/definitions/Structure"}}, "_metadata": {"title": "_metadata", "type": "array", "items": {"$ref": "#/definitions/Metadata"}}, "reaction": {"title": "reaction", "type": "array", "items": {"$ref": "#/definitions/Reaction"}}, "concentration": {"title": "concentration", "type": "array", "items": {"$ref": "#/definitions/Concentration"}}}, "type": "object", "title": "Compound", "required": []}, "Synonym": {"properties": {"id": {"title": "id", "type": "integer"}, "name": {"maxLength": 255, "type": "string", "title": "name"}}, "type": "object", "title": "Synonym", "required": ["id"]}, "Experiment": {"properties": {"id": {"title": "id", "type": "integer"}}, "type": "object", "title": "Experiment", "required": ["id"]}, "Method": {"properties": {"id": {"title": "id", "type": "integer"}, "name": {"maxLength": 255, "type": "string", "title": "name"}, "comments": {"maxLength": 255, "type": "string", "title": "comments"}, "performer": {"maxLength": 255, "type": "string", "title": "performer"}, "hardware": {"maxLength": 255, "type": "string", "title": "hardware"}, "software": {"maxLength": 255, "type": "string", "title": "software"}, "_experimentmetadata": {"title": "_experimentmetadata", "type": "array", "items": {"$ref": "#/definitions/ExperimentMetadata"}}}, "type": "object", "title": "Method", "required": ["id"]}, "CellCompartment": {"properties": {"id": {"title": "id", "type": "integer"}, "name": {"maxLength": 255, "type": "string", "title": "name"}, "reaction": {"title": "reaction", "type": "array", "items": {"$ref": "#/definitions/Reaction"}}}, "type": "object", "title": "CellCompartment", "required": ["id"]}, "RNASeqDataSet": {"properties": {"experiment_accession_number": {"title": "experiment_accession_number", "type": "string"}, "sample_name": {"title": "sample_name", "type": "string"}, "assay": {"title": "assay", "type": "string"}, "ensembl_organism_strain": {"title": "ensembl_organism_strain", "type": "string"}, "read_type": {"title": "read_type", "type": "string"}, "full_strain_specificity": {"title": "full_strain_specificity", "type": "boolean"}, "reference_genome": {"title": "reference_genome", "type": "array", "items": {"$ref": "#/definitions/ReferenceGenome"}}, "_metadata": {"title": "_metadata", "type": "array", "items": {"$ref": "#/definitions/Metadata"}}}, "type": "object", "title": "RNASeqDataSet", "required": []}, "Variable": {"properties": {"id": {"title": "id", "type": "integer"}, "category": {"maxLength": 255, "type": "string", "title": "category"}, "value": {"maxLength": 255, "type": "string", "title": "value"}, "units": {"maxLength": 255, "type": "string", "title": "units"}}, "type": "object", "title": "Variable", "required": ["id"]}, "Structure": {"properties": {"_value_smiles": {"maxLength": 255, "type": "string", "title": "_value_smiles"}, "_value_inchi": {"maxLength": 255, "type": "string", "title": "_value_inchi"}, "_structure_formula_connectivity": {"maxLength": 255, "type": "string", "title": "_structure_formula_connectivity"}, "_metadata": {"title": "_metadata", "type": "array", "items": {"$ref": "#/definitions/Metadata"}}}, "type": "object", "title": "Structure", "required": []}, "ExperimentDesign": {"properties": {"id": {"title": "id", "type": "integer"}, "name": {"maxLength": 255, "type": "string", "title": "name"}}, "type": "object", "title": "ExperimentDesign", "required": ["id"]}, "CellLine": {"properties": {"id": {"title": "id", "type": "integer"}, "name": {"maxLength": 255, "type": "string", "title": "name"}}, "type": "object", "title": "CellLine", "required": ["id"]}, "ProteinSubunit": {"properties": {"subunit_name": {"maxLength": 255, "type": "string", "title": "subunit_name"}, "uniprot_id": {"maxLength": 255, "type": "string", "title": "uniprot_id"}, "entrez_id": {"title": "entrez_id", "type": "integer"}, "ec_number": {"maxLength": 255, "type": "string", "title": "ec_number"}, "gene_name": {"maxLength": 255, "type": "string", "title": "gene_name"}, "gene_syn": {"maxLength": 255, "type": "string", "title": "gene_syn"}, "class_name": {"maxLength": 255, "type": "string", "title": "class_name"}, "family_name": {"maxLength": 255, "type": "string", "title": "family_name"}, "coefficient": {"title": "coefficient", "type": "integer"}, "canonical_sequence": {"maxLength": 255, "type": "string", "title": "canonical_sequence"}, "mass": {"title": "mass", "type": "integer"}, "length": {"title": "length", "type": "integer"}, "molecular_weight": {"title": "molecular_weight", "type": "number"}, "pax_load": {"title": "pax_load", "type": "integer"}, "uniprot_checked": {"title": "uniprot_checked", "type": "boolean"}, "proteincomplex": {"title": "proteincomplex", "type": "array", "items": {"$ref": "#/definitions/ProteinComplex"}}, "_metadata": {"title": "_metadata", "type": "array", "items": {"$ref": "#/definitions/Metadata"}}}, "type": "object", "title": "ProteinSubunit", "required": []}, "Parameter": {"properties": {"parameter_id": {"title": "parameter_id", "type": "integer"}, "sabio_type": {"title": "sabio_type", "type": "integer"}, "value": {"title": "value", "type": "number"}, "error": {"title": "error", "type": "number"}, "units": {"maxLength": 255, "type": "string", "title": "units"}, "observed_name": {"maxLength": 255, "type": "string", "title": "observed_name"}, "observed_sabio_type": {"title": "observed_sabio_type", "type": "integer"}, "observed_value": {"title": "observed_value", "type": "number"}, "observed_error": {"title": "observed_error", "type": "number"}, "observed_units": {"maxLength": 255, "type": "string", "title": "observed_units"}, "compound": {"title": "compound", "type": "array", "items": {"$ref": "#/definitions/Compound"}}}, "type": "object", "title": "Parameter", "required": ["parameter_id"]}, "ProteinComplex": {"properties": {"complex_name": {"maxLength": 255, "type": "string", "title": "complex_name"}, "go_id": {"maxLength": 255, "type": "string", "title": "go_id"}, "go_dsc": {"maxLength": 255, "type": "string", "title": "go_dsc"}, "funcat_id": {"maxLength": 255, "type": "string", "title": "funcat_id"}, "funcat_dsc": {"maxLength": 255, "type": "string", "title": "funcat_dsc"}, "su_cmt": {"maxLength": 255, "type": "string", "title": "su_cmt"}, "complex_cmt": {"maxLength": 255, "type": "string", "title": "complex_cmt"}, "disease_cmt": {"maxLength": 255, "type": "string", "title": "disease_cmt"}, "class_name": {"maxLength": 255, "type": "string", "title": "class_name"}, "family_name": {"maxLength": 255, "type": "string", "title": "family_name"}, "molecular_weight": {"title": "molecular_weight", "type": "number"}, "_metadata": {"title": "_metadata", "type": "array", "items": {"$ref": "#/definitions/Metadata"}}, "protein_subunit": {"title": "protein_subunit", "type": "array", "items": {"$ref": "#/definitions/ProteinSubunit"}}, "dna_binding_dataset": {"title": "dna_binding_dataset", "type": "array", "items": {"$ref": "#/definitions/DNABindingDataset"}}}, "type": "object", "title": "ProteinComplex", "required": []}, "Concentration": {"properties": {"value": {"title": "value", "type": "number"}, "error": {"title": "error", "type": "number"}, "units": {"maxLength": 255, "type": "string", "title": "units"}, "_metadata": {"title": "_metadata", "type": "array", "items": {"$ref": "#/definitions/Metadata"}}}, "type": "object", "title": "Concentration", "required": []}, "DNABindingDataset": {"properties": {"version": {"title": "version", "type": "integer"}, "subunit": {"title": "subunit", "type": "array", "items": {"$ref": "#/definitions/ProteinSubunit"}}, "_metadata": {"title": "_metadata", "type": "array", "items": {"$ref": "#/definitions/Metadata"}}, "dna_binding_data": {"title": "dna_binding_data", "type": "array", "items": {"$ref": "#/definitions/DNABindingData"}}}, "type": "object", "title": "DNABindingDataset", "required": []}, "Resource": {"properties": {"id": {"title": "id", "type": "integer"}, "namespace": {"maxLength": 255, "type": "string", "title": "namespace"}, "_id": {"maxLength": 255, "type": "string", "title": "_id"}, "release_date": {"maxLength": 255, "type": "string", "title": "release_date"}, "_metadata": {"title": "_metadata", "type": "array", "items": {"$ref": "#/definitions/Metadata"}}}, "type": "object", "title": "Resource", "required": ["id"]}, "KineticLaw": {"properties": {"enzyme_type": {"maxLength": 255, "type": "string", "title": "enzyme_type"}, "tissue": {"maxLength": 255, "type": "string", "title": "tissue"}, "mechanism": {"maxLength": 255, "type": "string", "title": "mechanism"}, "equation": {"maxLength": 255, "type": "string", "title": "equation"}, "enzyme": {"title": "enzyme", "type": "array", "items": {"$ref": "#/definitions/ProteinComplex"}}, "_metadata": {"title": "_metadata", "type": "array", "items": {"$ref": "#/definitions/Metadata"}}, "parameter": {"title": "parameter", "type": "array", "items": {"$ref": "#/definitions/Parameter"}}}, "type": "object", "title": "KineticLaw", "required": []}, "DNABindingData": {"properties": {"position_id": {"title": "position_id", "type": "integer"}, "position": {"title": "position", "type": "integer"}, "frequency_a": {"title": "frequency_a", "type": "integer"}, "frequency_c": {"title": "frequency_c", "type": "integer"}, "frequency_g": {"title": "frequency_g", "type": "integer"}, "frequency_t": {"title": "frequency_t", "type": "integer"}, "jaspar_id": {"title": "jaspar_id", "type": "integer"}}, "type": "object", "title": "DNABindingData", "required": ["position_id"]}}}

    a_dict = title_properties(a_dict)
    a_dict = listify_properties("RNASeqExperiment", a_dict)
    a_dict = remove_id(a_dict)

    if 'definitions' in a_dict:
        for definition in a_dict['definitions']:
            #print(a_dict['definitions'][definition])
            #print(remove_id(a_dict['definitions'][definition]))
            a_dict['definitions'][definition]["title"] = definition
            a_dict['definitions'][definition] = title_properties(
                a_dict['definitions'][definition])
            a_dict['definitions'][definition] = listify_properties(
                definition, a_dict['definitions'][definition])
            a_dict['definitions'][definition] = remove_id(
                a_dict['definitions'][definition])
            #print(a_dict['definitions'][definition])

    a_dict = mydict(a_dict)
    return a_dict
示例#20
0
def test_it__prepare():
    from alchemyjsonschema import SchemaFactory, StructuralWalker
    from alchemyjsonschema.tests.models import Group

    factory = SchemaFactory(StructuralWalker)
    group_schema = factory(Group)
    group_dict = {
        "name": "ravenclaw",
        "created_at": "2000-01-01T00:00:00+00:00",
        "color": "blue",
        "pk": 1,
        "users": [
            {"name": "foo", "created_at": "2000-01-01T00:00:00+00:00", "pk": 12},
            {"name": "boo", "created_at": "2000-01-01T00:00:00+00:00", "pk": 13},
        ],
    }

    result = _callFUT3(group_dict, group_schema)
    assert result == {
        "name": "ravenclaw",
        "created_at": "2000-01-01T00:00:00+00:00",
        "color": "blue",
        "pk": 1,
        "users": [
            {"name": "foo", "created_at": "2000-01-01T00:00:00+00:00", "pk": 12},
            {"name": "boo", "created_at": "2000-01-01T00:00:00+00:00", "pk": 13},
        ],
    }
示例#21
0
def test_it_normalize__partial2():
    from alchemyjsonschema import SchemaFactory, AlsoChildrenWalker
    from alchemyjsonschema.tests.models import User

    factory = SchemaFactory(AlsoChildrenWalker)
    user_schema = factory(User)
    user_dict = {'name': 'foo'}

    result = _callFUT2(user_dict, user_schema)
    assert result == {'name': 'foo', 'group': None}
示例#22
0
def test_it_normalize__partial():
    from alchemyjsonschema import SchemaFactory, AlsoChildrenWalker
    from alchemyjsonschema.tests.models import Group

    factory = SchemaFactory(AlsoChildrenWalker)
    group_schema = factory(Group)
    group_dict = {'name': 'ravenclaw', 'color': 'blue'}

    result = _callFUT2(group_dict, group_schema)
    assert result == {'color': 'blue', 'name': 'ravenclaw', 'users': []}
示例#23
0
def test_it__prepare_partial():
    from alchemyjsonschema import SchemaFactory, StructuralWalker
    from alchemyjsonschema.tests.models import Group

    factory = SchemaFactory(StructuralWalker)
    group_schema = factory(Group)
    group_dict = {"name": "ravenclaw", "color": "blue", "pk": 1}

    result = _callFUT3(group_dict, group_schema)
    assert result == {"name": "ravenclaw", "pk": 1, "color": "blue", "users": []}
示例#24
0
def test_it_normalize__partial2():
    from alchemyjsonschema import SchemaFactory, StructuralWalker
    from alchemyjsonschema.tests.models import User

    factory = SchemaFactory(StructuralWalker)
    user_schema = factory(User)
    user_dict = {"name": "foo"}

    result = _callFUT2(user_dict, user_schema)
    assert result == {"name": "foo", "group": None}
示例#25
0
def test_no_required():
    from alchemyjsonschema import StructuralWalker, SchemaFactory
    from alchemyjsonschema.dictify import ModelLookup
    from alchemyjsonschema.tests import models
    schema_factory = SchemaFactory(StructuralWalker)
    schema = schema_factory(models.MyModel, excludes=["id"])
    modellookup = ModelLookup(models)

    params = {"name": "foo", "value": 1}
    _callFUT(params, schema, modellookup)
示例#26
0
def test_it__normalize():
    from alchemyjsonschema import SchemaFactory, AlsoChildrenWalker
    from alchemyjsonschema.tests.models import Group
    from datetime import datetime
    import pytz
    created_at = datetime(2000, 1, 1, 0, 0, 0, 0, pytz.utc)

    factory = SchemaFactory(AlsoChildrenWalker)
    group_schema = factory(Group)
    group_dict = {
        'name':
        'ravenclaw',
        'created_at':
        '2000-01-01T00:00:00+00:00',
        'color':
        'blue',
        'pk':
        None,
        'users': [{
            'name': 'foo',
            'created_at': '2000-01-01T00:00:00+00:00',
            'pk': None
        }, {
            'name': 'boo',
            'created_at': '2000-01-01T00:00:00+00:00',
            'pk': None
        }]
    }

    result = _callFUT2(group_dict, group_schema)
    assert result == {
        'pk':
        None,
        'color':
        'blue',
        'name':
        'ravenclaw',
        "created_at":
        created_at,
        'users': [{
            'pk': None,
            'name': 'foo',
            "created_at": created_at
        }, {
            'pk': None,
            'name': 'boo',
            "created_at": created_at
        }]
    }
def test_it_reverse_update():
    from alchemyjsonschema.tests import models as m
    from alchemyjsonschema import SchemaFactory, StructuralWalker
    from alchemyjsonschema.dictify import ModelLookup

    factory = SchemaFactory(StructuralWalker)
    a_schema = factory(m.A1)
    modellookup = ModelLookup(m)

    a0 = m.A0(pk=1, name="a0", children=[m.A1(pk=1, name="a00"), m.A1(pk=2, name=("a01"))])

    assert a0.name == "a0"
    params = {"pk": 1, "name": "a00", "parent": {"name": "updated", "pk": 1}}
    _callFUT(a0.children[0], params, a_schema, modellookup)
    assert a0.name == "updated"
示例#28
0
def test_it__prepare_partial():
    from alchemyjsonschema import SchemaFactory, StructuralWalker
    from alchemyjsonschema.tests.models import Group

    factory = SchemaFactory(StructuralWalker)
    group_schema = factory(Group)
    group_dict = {'name': 'ravenclaw', 'color': 'blue', 'pk': 1}

    result = _callFUT3(group_dict, group_schema)
    assert result == {
        'name': 'ravenclaw',
        'pk': 1,
        'color': 'blue',
        'users': []
    }
def test_it_update_parent__onlyone():
    from alchemyjsonschema.tests import models as m
    from alchemyjsonschema import SchemaFactory, NoForeignKeyWalker
    from alchemyjsonschema.dictify import ModelLookup

    factory = SchemaFactory(NoForeignKeyWalker)
    a_schema = factory(m.A0)
    modellookup = ModelLookup(m)

    a0 = m.A0(pk=1, name="a0", children=[m.A1(pk=1, name="a00"), m.A1(pk=2, name=("a01"))])

    assert a0.name == "a0"
    params = {"pk": 1, "name": "updated"}
    _callFUT(a0, params, a_schema, modellookup)
    assert a0.name == "updated"
    assert len(a0.children) == 2
def test_it__strict_true__then__required_are_notfound__error_raised():
    from alchemyjsonschema import SchemaFactory, ForeignKeyWalker, InvalidStatus
    from alchemyjsonschema.dictify import ModelLookup
    import alchemyjsonschema.tests.models as models
    from datetime import datetime
    import pytest

    factory = SchemaFactory(ForeignKeyWalker)
    user_schema = factory(models.User)

    created_at = datetime(2000, 1, 1)
    user_dict = dict(name="foo", created_at=created_at)  # pk is not found
    modellookup = ModelLookup(models)

    with pytest.raises(InvalidStatus):
        _callFUT(user_dict, user_schema, modellookup, strict=True)