コード例 #1
0
ファイル: fhir.py プロジェクト: jmscraig/test-suite
def check_reference(reference, orig, context):
    """ Follow references and make sure they exist.

    Args:
        reference (str): A reference in the format:
           * Resource/id
           * http://example.com/base/Resource/id
           * #id
        orig (dict): The original resource, used when checking contained references.
        context: The behave context
    """
    if reference.startswith('#'):
        matches = [
            contained for contained in orig.get('contained', [])
            if contained['id'] == reference[1:]
        ]
        assert len(matches) == 1, \
            utils.bad_response_assert(context.response,
                                      ERROR_UNRESOLVED_REFERENCE,
                                      reference=reference)
    else:
        response = utils.get_resource(context, reference)

        assert int(response.status_code) == 200, \
            utils.bad_response_assert(context.response,
                                      ERROR_UNRESOLVED_REFERENCE,
                                      reference=reference)
コード例 #2
0
ファイル: fhir.py プロジェクト: sync-for-science/test-suite
def check_reference(reference, orig, context):
    """ Follow references and make sure they exist.

    Args:
        reference (str): A reference in the format:
           * Resource/id
           * http://example.com/base/Resource/id
           * #id
        orig (dict): The original resource, used when checking contained references.
        context: The behave context
    """
    if reference.startswith('#'):
        matches = [contained for contained in orig.get('contained', [])
                   if contained['id'] == reference[1:]]
        assert len(matches) == 1, \
            utils.bad_response_assert(context.response,
                                      ERROR_UNRESOLVED_REFERENCE,
                                      reference=reference)
    else:
        response = utils.get_resource(context, reference)

        assert int(response.status_code) == 200, \
            utils.bad_response_assert(context.response,
                                      ERROR_UNRESOLVED_REFERENCE,
                                      reference=reference)
コード例 #3
0
ファイル: fhir.py プロジェクト: jmblakl/test-suite
def step_impl(context):
    query = s4s.MU_CCDS_MAPPINGS['Patient demographics']
    query = query.format(patientId=context.vendor_config['api'].get('patient'))
    response = utils.get_resource(context, query)

    assert response.status_code == 200, \
        utils.bad_response_assert(response,
                                  ERROR_NO_ACCESS)
コード例 #4
0
ファイル: fhir.py プロジェクト: sync-for-science/test-suite
def step_impl(context):
    query = s4s.MU_CCDS_MAPPINGS['Patient demographics']
    query = query.format(patientId=context.vendor_config['versioned_api'].get('patient'))
    response = utils.get_resource(context, query)

    assert response.status_code == 200, \
        utils.bad_response_assert(response,
                                  ERROR_NO_ACCESS)
コード例 #5
0
ファイル: s4s.py プロジェクト: sync-for-science/test-suite
def step_impl(context, mu_ccds_query):
    query = mu_ccds_query.format(patientId=context.vendor_config['versioned_api'].get('patient'))
    response = utils.get_resource(context, query)

    context.is_fallback = False

    # we want to support an older way to retrieve smoking status, using the
    # social-history parameter instead of the code; if the code-based method
    # fails, fall back to the social-history method
    if mu_ccds_query == MU_CCDS_MAPPINGS['Smoking status'] and not response.ok:
        fallback_query = MU_CCDS_MAPPINGS['Smoking status fallback'].format(
            patientId=context.vendor_config['versioned_api'].get('patient')
        )
        response = utils.get_resource(context, fallback_query)
        context.primary_uri = query
        context.fallback_uri = fallback_query
        context.is_fallback = True

    context.response = response
コード例 #6
0
ファイル: fhir.py プロジェクト: jmscraig/test-suite
def step_impl(context):
    resource = context.response.json()

    links = resource.get('link', [])
    urls = [link['url'] for link in links if link['relation'] == 'next']

    if len(urls) is not 1:
        context.scenario.skip(reason=ERROR_NO_NEXT_LINK)
        return

    context.response = utils.get_resource(context, urls[0])
コード例 #7
0
ファイル: fhir.py プロジェクト: sync-for-science/test-suite
def step_impl(context):
    resource = context.response.json()

    links = resource.get('link', [])
    urls = [link['url'] for link in links
            if link['relation'] == 'next']

    if len(urls) is not 1:
        context.scenario.skip(reason=ERROR_NO_NEXT_LINK)
        return

    context.response = utils.get_resource(context, urls[0])
コード例 #8
0
ファイル: s4s.py プロジェクト: jmblakl/test-suite
def step_impl(context, mu_ccds_query):
    query = mu_ccds_query.format(
        patientId=context.vendor_config['api'].get('patient'))
    response = utils.get_resource(context, query)

    context.response = response
コード例 #9
0
ファイル: s4s.py プロジェクト: josiahdecker/test-suite
def step_impl(context, mu_ccds_query):
    query = mu_ccds_query.format(patientId=context.vendor_config['api'].get('patient'))
    response = utils.get_resource(context, query)

    context.response = response