Exemple #1
0
def test_add_doc_data_skip_key(conn):
    conn.addDocumentData({
        'a': 'aa',
        'b': 'bb'
    },
                         keys={'b': DocumentKey(skip=True)})
    assert len(get_statements(conn)) == 1
Exemple #2
0
def test_add_doc_data_csv_base(conn, ex, uri):
    conn.addDocumentData('a,b,c\ndd,ee,ff', DocFormat.CSV, base=uri)
    statements = get_statements(conn)
    assert 3 == len(statements)
    subject = statements[0][0]
    assert statements == [[subject, ex.a, Literal('dd'), None],
                          [subject, ex.b, Literal('ee'), None],
                          [subject, ex.c, Literal('ff'), None]]
Exemple #3
0
def test_add_doc_data_context(conn, ex, uri):
    conn.addDocumentData({'a': 'aa', 'b': 'bb'}, context=uri)
    statements = get_statements(conn)
    assert 2 == len(statements)
    subject = statements[0][0]
    ns = conn.namespace(statements[0][1].getNamespace())
    assert statements == [[subject, ns.a, Literal('aa'), ex.g],
                          [subject, ns.b, Literal('bb'), ex.g]]
Exemple #4
0
def test_add_doc_data_subject(conn, ex, uri):
    conn.addDocumentData('a,b,c\ndd,ee,ff', DocFormat.CSV, subject=uri)
    statements = get_statements(conn)
    assert 3 == len(statements)
    ns = conn.namespace(statements[0][1].getNamespace())
    assert statements == [[ex.s, ns.a, Literal('dd'), None],
                          [ex.s, ns.b, Literal('ee'), None],
                          [ex.s, ns.c, Literal('ff'), None]]
def test_add_doc_data_csv_base(conn, ex, uri):
    conn.addDocumentData('a,b,c\ndd,ee,ff', DocFormat.CSV, base=uri)
    statements = get_statements(conn)
    assert 3 == len(statements)
    subject = statements[0][0]
    assert statements == [[subject, ex.a, Literal('dd'), None],
                          [subject, ex.b, Literal('ee'), None],
                          [subject, ex.c, Literal('ff'), None]]
def test_add_doc_data_skip_key(conn):
    conn.addDocumentData({
        'a': 'aa',
        'b': 'bb'
    }, keys={
        'b': DocumentKey(skip=True)
    })
    assert len(get_statements(conn)) == 1
def test_add_doc_data_subject_template(conn, ex):
    conn.addDocumentData('a,b,c\ndd,ee,ff', DocFormat.CSV, subject='ex://$a')
    statements = get_statements(conn)
    assert 3 == len(statements)
    ns = conn.namespace(statements[0][1].getNamespace())
    assert statements == [[ex.dd, ns.a, Literal('dd'), None],
                          [ex.dd, ns.b, Literal('ee'), None],
                          [ex.dd, ns.c, Literal('ff'), None]]
Exemple #8
0
def test_add_doc_data_csv_escape(conn):
    conn.addDocumentData('a,b,c\nxx,"y?"y",zz', DocFormat.CSV, csv_escape='?')
    statements = get_statements(conn)
    assert 3 == len(statements)
    subject = statements[0][0]
    ns = conn.namespace(statements[0][1].getNamespace())
    assert statements == [[subject, ns.a, Literal('xx'), None],
                          [subject, ns.b, Literal('y"y'), None],
                          [subject, ns.c, Literal('zz'), None]]
def test_add_doc_data_csv_escape(conn):
    conn.addDocumentData('a,b,c\nxx,"y?"y",zz', DocFormat.CSV, csv_escape='?')
    statements = get_statements(conn)
    assert 3 == len(statements)
    subject = statements[0][0]
    ns = conn.namespace(statements[0][1].getNamespace())
    assert statements == [[subject, ns.a, Literal('xx'), None],
                          [subject, ns.b, Literal('y"y'), None],
                          [subject, ns.c, Literal('zz'), None]]
Exemple #10
0
def test_add_doc_data_csv_separator(conn):
    conn.addDocumentData('a:b:c\nxx:yy:zz', DocFormat.CSV, csv_separator=':')
    statements = get_statements(conn)
    assert 3 == len(statements)
    subject = statements[0][0]
    ns = conn.namespace(statements[0][1].getNamespace())
    assert statements == [[subject, ns.a, Literal('xx'), None],
                          [subject, ns.b, Literal('yy'), None],
                          [subject, ns.c, Literal('zz'), None]]
Exemple #11
0
def test_add_doc_data_graph(conn, ex, uri):
    conn.addDocumentData({
        'a': 'aa'
    }, graph={
        'a': uri
    })
    statements = get_statements(conn)
    assert len(statements) == 1
    assert statements[0][3] == ex.g
Exemple #12
0
def test_add_doc_data_transform_template(conn):
    conn.addDocumentData({
        'a': 'XY'
    }, transform={
        'a': 'test-$a'
    })
    statements = get_statements(conn)
    assert len(statements) == 1
    assert statements[0][2] == Literal('test-XY')
Exemple #13
0
def test_add_doc_data_transform_built_in(conn):
    conn.addDocumentData({
        'a': 'aa'
    }, transform={
        'a': 'string-capitalize'
    })
    statements = get_statements(conn)
    assert len(statements) == 1
    assert statements[0][2] == Literal('Aa')
Exemple #14
0
def test_add_doc_data_csv(conn):
    conn.addDocumentData('a,b,c\ndd,ee,ff', DocFormat.CSV)
    statements = get_statements(conn)
    assert 3 == len(statements)
    subject = statements[0][0]
    ns = conn.namespace(statements[0][1].getNamespace())
    assert statements == [[subject, ns.a, Literal('dd'), None],
                          [subject, ns.b, Literal('ee'), None],
                          [subject, ns.c, Literal('ff'), None]]
Exemple #15
0
def test_add_doc_data_lang(conn):
    conn.addDocumentData({
        'a': 'aa'
    }, lang={
        'a': 'sjn'
    })
    statements = get_statements(conn)
    assert len(statements) == 1
    assert statements[0][2].language == 'sjn'
Exemple #16
0
def test_add_doc_data_rdf_type_uri(conn, ex):
    conn.addDocumentData({
        'a': 'ex://aa'
    }, rdf_type={
        'a': 'uri'
    })
    statements = get_statements(conn)
    assert len(statements) == 1
    assert statements[0][2] == ex.aa
Exemple #17
0
def test_add_doc_data_rdf_type(conn, ex, uri):
    conn.addDocumentData({
        'a': 'aa'
    }, rdf_type={
        'a': uri
    })
    statements = get_statements(conn)
    assert len(statements) == 1
    assert statements[0][2].datatype == ex.t
Exemple #18
0
def test_add_doc_data_rename_key(conn):
    conn.addDocumentData({
        'a': 'aa'
    }, rename={
        'a': 'p'
    })
    statements = get_statements(conn)
    assert len(statements) == 1
    assert statements[0][1].getLocalName() == 'p'
Exemple #19
0
def test_add_doc_data_rename_uri(conn, ex):
    conn.addDocumentData({
        'a': 'aa'
    }, rename={
        'a': ex.p
    })
    statements = get_statements(conn)
    assert len(statements) == 1
    assert statements[0][1] == ex.p
Exemple #20
0
def test_add_doc_data_rules(conn, ex):
    conn.addData('''
        @prefix ldm: <http://franz.com/ns/allegrograph/6.4/load-meta#> .
        ldm:myrules ldm:id "ex://test${x}" ;
                    ldm:prefix "ex://" .''')
    conn.addDocumentData({'x': "abc"}, rules='myrules')
    statements = [stmt for stmt in get_statements(conn)
                  if 'load-meta' not in str(stmt[0])]
    assert statements == [[ex.testabc, ex.x, Literal('abc'), None]]
Exemple #21
0
def test_add_doc_data_csv_columns(conn):
    conn.addDocumentData('dd,ee,ff', DocFormat.CSV, csv_columns=['a', 'b', 'c'])
    statements = get_statements(conn)
    assert 3 == len(statements)
    subject = statements[0][0]
    ns = conn.namespace(statements[0][1].getNamespace())
    assert statements == [[subject, ns.a, Literal('dd'), None],
                          [subject, ns.b, Literal('ee'), None],
                          [subject, ns.c, Literal('ff'), None]]
Exemple #22
0
def test_add_doc_data_store_source(conn):
    # Empty dict will not be stored at all, so we need at least one key
    src = '{"a":"bb"}'
    conn.addDocumentData(src, json_store_source=True)
    for _s, _p, o, _g in get_statements(conn):
        if o == Literal(src):
            break
    else:
        pytest.fail('Source document not found.')
Exemple #23
0
def test_add_doc_data_store_source(conn):
    # Empty dict will not be stored at all, so we need at least one key
    src = '{"a":"bb"}'
    conn.addDocumentData(src, json_store_source=True)
    for _s, _p, o, _g in get_statements(conn):
        if o == Literal(src):
            break
    else:
        pytest.fail('Source document not found.')
Exemple #24
0
def test_add_doc_data_csv_separator(conn):
    conn.addDocumentData('a:b:c\nxx:yy:zz', DocFormat.CSV, csv_separator=':')
    statements = get_statements(conn)
    assert 3 == len(statements)
    subject = statements[0][0]
    ns = conn.namespace(statements[0][1].getNamespace())
    assert statements == [[subject, ns.a, Literal('xx'), None],
                          [subject, ns.b, Literal('yy'), None],
                          [subject, ns.c, Literal('zz'), None]]
Exemple #25
0
def test_add_doc_data_csv_dialect(conn, excel_tab):
    conn.addDocumentData('a\tb\tc\r\n"x""x"\t yy\tzz', DocFormat.CSV,
                         csv_dialect=excel_tab)
    statements = get_statements(conn)
    assert 3 == len(statements)
    subject = statements[0][0]
    ns = conn.namespace(statements[0][1].getNamespace())
    assert statements == [[subject, ns.a, Literal('x"x'), None],
                          [subject, ns.b, Literal(' yy'), None],
                          [subject, ns.c, Literal('zz'), None]]
Exemple #26
0
def test_add_doc_data_prefix_override(conn, pref1, pref2):
    p2 = conn.namespace('p2://')
    conn.addDocumentData({'a': 'aa'},
                         keys={
                             'a': DocumentKey(prefix=pref1),
                         },
                         prefix={'a': pref2})
    statements = get_statements(conn)
    assert len(statements) == 1
    assert statements == [[statements[0][0], p2.a, Literal('aa'), None]]
Exemple #27
0
def test_add_doc_data_csv_override_dialect(conn, doc, arg, value, dialect):
    conn.addDocumentData(doc, DocFormat.CSV, csv_dialect=dialect,
                         **{arg: value})
    statements = get_statements(conn)
    assert 3 == len(statements)
    subject = statements[0][0]
    ns = conn.namespace(statements[0][1].getNamespace())
    assert statements == [[subject, ns.a, Literal('x"x'), None],
                          [subject, ns.b, Literal(' yy'), None],
                          [subject, ns.c, Literal('zz'), None]]
Exemple #28
0
def test_add_doc_data_rules(conn, ex):
    conn.addData('''
        @prefix ldm: <http://franz.com/ns/allegrograph/6.4/load-meta#> .
        ldm:myrules ldm:id "ex://test${x}" ;
                    ldm:prefix "ex://" .''')
    conn.addDocumentData({'x': "abc"}, rules='myrules')
    statements = [
        stmt for stmt in get_statements(conn)
        if 'load-meta' not in str(stmt[0])
    ]
    assert statements == [[ex.testabc, ex.x, Literal('abc'), None]]
Exemple #29
0
def test_add_doc_data_context(conn, ex, uri):
    conn.addDocumentData({
        'a': 'aa',
        'b': 'bb'
    }, context=uri)
    statements = get_statements(conn)
    assert 2 == len(statements)
    subject = statements[0][0]
    ns = conn.namespace(statements[0][1].getNamespace())
    assert statements == [[subject, ns.a, Literal('aa'), ex.g],
                          [subject, ns.b, Literal('bb'), ex.g]]
Exemple #30
0
def test_add_doc_data_csv_base_and_subject(conn, ex):
    conn.addDocumentData('a,b,c\ndd,ee,ff',
                         DocFormat.CSV,
                         base='ex://',
                         subject='ex://$a')
    assert get_statements(conn) == [[ex.dd, ex.a,
                                     Literal('dd'), None],
                                    [ex.dd, ex.b,
                                     Literal('ee'), None],
                                    [ex.dd, ex.c,
                                     Literal('ff'), None]]
Exemple #31
0
def test_add_doc_data_csv_dialect(conn, excel_tab):
    conn.addDocumentData('a\tb\tc\r\n"x""x"\t yy\tzz',
                         DocFormat.CSV,
                         csv_dialect=excel_tab)
    statements = get_statements(conn)
    assert 3 == len(statements)
    subject = statements[0][0]
    ns = conn.namespace(statements[0][1].getNamespace())
    assert statements == [[subject, ns.a, Literal('x"x'), None],
                          [subject, ns.b, Literal(' yy'), None],
                          [subject, ns.c, Literal('zz'), None]]
Exemple #32
0
def test_add_doc_encoding(conn, after):
    f = tempfile.NamedTemporaryFile(suffix='.csv', delete=False)
    filename = f.name
    after.append(lambda: os.remove(filename))
    f.write(u'p\nрджреБрдкЁЯЫБ'.encode('utf-16le'))
    f.close()

    # This is completely broken... it expects an external format name here
    conn.addDocumentFile(filename, DocFormat.CSV, encoding='unicode')
    statements = get_statements(conn)
    assert 1 == len(statements)
    assert statements[0][2] == Literal(u"рджреБрдкЁЯЫБ")
Exemple #33
0
def test_add_doc_data_csv_override_dialect(conn, doc, arg, value, dialect):
    conn.addDocumentData(doc,
                         DocFormat.CSV,
                         csv_dialect=dialect,
                         **{arg: value})
    statements = get_statements(conn)
    assert 3 == len(statements)
    subject = statements[0][0]
    ns = conn.namespace(statements[0][1].getNamespace())
    assert statements == [[subject, ns.a, Literal('x"x'), None],
                          [subject, ns.b, Literal(' yy'), None],
                          [subject, ns.c, Literal('zz'), None]]
Exemple #34
0
def test_add_doc_content_encoding(conn, after):
    f = tempfile.NamedTemporaryFile(suffix='.json.gz', delete=False)
    filename = f.name
    after.append(lambda: os.remove(filename))
    with gzip.GzipFile('data.json', 'wb', fileobj=f) as gz:
        gz.write('{"p":"oo"}'.encode('utf-8'))
    f.close()

    conn.addDocumentFile(filename, DocFormat.JSON, content_encoding='gzip')
    statements = get_statements(conn)
    assert 1 == len(statements)
    assert statements[0][2] == Literal("oo")
Exemple #35
0
def test_add_doc_data_prefix_override(conn, pref1, pref2):
    p2 = conn.namespace('p2://')
    conn.addDocumentData({
        'a': 'aa'
    }, keys={
        'a': DocumentKey(prefix=pref1),
    }, prefix={
        'a': pref2
    })
    statements = get_statements(conn)
    assert len(statements) == 1
    assert statements == [[statements[0][0], p2.a, Literal('aa'), None]]
Exemple #36
0
def test_add_doc_content_encoding(conn, after):
    f = tempfile.NamedTemporaryFile(suffix='.json.gz', delete=False)
    filename = f.name
    after.append(lambda: os.remove(filename))
    with gzip.GzipFile('data.json', 'wb', fileobj=f) as gz:
        gz.write('{"p":"oo"}'.encode('utf-8'))
    f.close()

    conn.addDocumentFile(filename, DocFormat.JSON, content_encoding='gzip')
    statements = get_statements(conn)
    assert 1 == len(statements)
    assert statements[0][2] == Literal("oo")
Exemple #37
0
def test_add_doc_encoding(conn, after):
    f = tempfile.NamedTemporaryFile(suffix='.csv', delete=False)
    filename = f.name
    after.append(lambda: os.remove(filename))
    f.write(u'p\nрджреБрдкЁЯЫБ'.encode('utf-16le'))
    f.close()

    # This is completely broken... it expects an external format name here
    conn.addDocumentFile(filename, DocFormat.CSV, encoding='unicode')
    statements = get_statements(conn)
    assert 1 == len(statements)
    assert statements[0][2] == Literal(u"рджреБрдкЁЯЫБ")
Exemple #38
0
def test_add_doc_data_prefix_in_keys(conn, pref1, pref2):
    p1 = conn.namespace('p1://')
    p2 = conn.namespace('p2://')
    conn.addDocumentData({
        'a': 'aa',
        'b': 'bb'
    }, keys={
        'a': DocumentKey(prefix=pref1),
        'b': DocumentKey(prefix=pref2)
    })
    statements = get_statements(conn)
    assert len(statements) == 2
    assert statements == [[statements[0][0], p1.a, Literal('aa'), None],
                          [statements[1][0], p2.b, Literal('bb'), None]]
Exemple #39
0
def test_add_doc_data_prefix_in_keys(conn, pref1, pref2):
    p1 = conn.namespace('p1://')
    p2 = conn.namespace('p2://')
    conn.addDocumentData({
        'a': 'aa',
        'b': 'bb'
    },
                         keys={
                             'a': DocumentKey(prefix=pref1),
                             'b': DocumentKey(prefix=pref2)
                         })
    statements = get_statements(conn)
    assert len(statements) == 2
    assert statements == [[statements[0][0], p1.a,
                           Literal('aa'), None],
                          [statements[1][0], p2.b,
                           Literal('bb'), None]]
Exemple #40
0
def test_add_doc_data_empty_list(conn):
    conn.addDocumentData([])
    assert get_statements(conn) == []
Exemple #41
0
def test_add_doc_data_rename_key(conn):
    conn.addDocumentData({'a': 'aa'}, rename={'a': 'p'})
    statements = get_statements(conn)
    assert len(statements) == 1
    assert statements[0][1].getLocalName() == 'p'
Exemple #42
0
def test_add_doc_data_rdf_type(conn, ex, uri):
    conn.addDocumentData({'a': 'aa'}, rdf_type={'a': uri})
    statements = get_statements(conn)
    assert len(statements) == 1
    assert statements[0][2].datatype == ex.t
Exemple #43
0
def test_add_doc_data_empty_dict(conn):
    conn.addDocumentData({})
    assert get_statements(conn) == []
Exemple #44
0
def test_add_doc_data_empty(conn):
    conn.addDocumentData('{}')
    assert get_statements(conn) == []
Exemple #45
0
def test_add_doc_data_rdf_type_uri(conn, ex):
    conn.addDocumentData({'a': 'ex://aa'}, rdf_type={'a': 'uri'})
    statements = get_statements(conn)
    assert len(statements) == 1
    assert statements[0][2] == ex.aa
Exemple #46
0
def test_add_doc_data_lang(conn):
    conn.addDocumentData({'a': 'aa'}, lang={'a': 'sjn'})
    statements = get_statements(conn)
    assert len(statements) == 1
    assert statements[0][2].language == 'sjn'
Exemple #47
0
def test_add_doc_data_transform_template(conn):
    conn.addDocumentData({'a': 'XY'}, transform={'a': 'test-$a'})
    statements = get_statements(conn)
    assert len(statements) == 1
    assert statements[0][2] == Literal('test-XY')
Exemple #48
0
def test_add_doc_data_empty(conn):
    conn.addDocumentData('{}')
    assert get_statements(conn) == []
Exemple #49
0
def test_add_doc_data_skip(conn):
    conn.addDocumentData({'a': 'aa', 'b': 'bb'}, skip=['a'])
    assert len(get_statements(conn)) == 1
Exemple #50
0
def test_add_doc_data_empty_list(conn):
    conn.addDocumentData([])
    assert get_statements(conn) == []
Exemple #51
0
def test_add_doc_data_empty_dict(conn):
    conn.addDocumentData({})
    assert get_statements(conn) == []
Exemple #52
0
def test_add_doc_data_graph(conn, ex, uri):
    conn.addDocumentData({'a': 'aa'}, graph={'a': uri})
    statements = get_statements(conn)
    assert len(statements) == 1
    assert statements[0][3] == ex.g
Exemple #53
0
def test_add_doc_data_rename_uri(conn, ex):
    conn.addDocumentData({'a': 'aa'}, rename={'a': ex.p})
    statements = get_statements(conn)
    assert len(statements) == 1
    assert statements[0][1] == ex.p
Exemple #54
0
def test_add_doc_data_skip(conn):
    conn.addDocumentData({
        'a': 'aa',
        'b': 'bb'
    }, skip=['a'])
    assert len(get_statements(conn)) == 1
Exemple #55
0
def test_add_doc_data_csv_base_and_subject(conn, ex):
    conn.addDocumentData('a,b,c\ndd,ee,ff', DocFormat.CSV, base='ex://', subject='ex://$a')
    assert get_statements(conn) == [[ex.dd, ex.a, Literal('dd'), None],
                                    [ex.dd, ex.b, Literal('ee'), None],
                                    [ex.dd, ex.c, Literal('ff'), None]]
Exemple #56
0
def test_add_doc_data_transform_built_in(conn):
    conn.addDocumentData({'a': 'aa'}, transform={'a': 'string-capitalize'})
    statements = get_statements(conn)
    assert len(statements) == 1
    assert statements[0][2] == Literal('Aa')