def test_driver_add_with_hashes(): ''' Tests creation of a record with hashes. ''' with sqlite3.connect('index.sq3') as conn: driver = SQLAlchemyIndexDriver('sqlite:///index.sq3') form = 'object' hashes = { 'a': '1', 'b': '2', 'c': '3', } driver.add(form, hashes=hashes) count = conn.execute(''' SELECT COUNT(*) FROM index_record ''').fetchone()[0] assert count == 1, 'driver did not create record' count = conn.execute(''' SELECT COUNT(*) FROM index_record_hash ''').fetchone()[0] assert count == 3, 'driver did not create hash(es)' new_hashes = {h:v for h, v in conn.execute(''' SELECT hash_type, hash_value FROM index_record_hash ''')} assert hashes == new_hashes, 'record hashes mismatch'
def test_driver_add_with_hashes(): ''' Tests creation of a record with hashes. ''' with sqlite3.connect('index.sq3') as conn: driver = SQLAlchemyIndexDriver('sqlite:///index.sq3') form = 'object' hashes = { 'a': '1', 'b': '2', 'c': '3', } driver.add(form, hashes=hashes) count = conn.execute(''' SELECT COUNT(*) FROM index_record ''').fetchone()[0] assert count == 1, 'driver did not create record' count = conn.execute(''' SELECT COUNT(*) FROM index_record_hash ''').fetchone()[0] assert count == 3, 'driver did not create hash(es)' new_hashes = {h:v for h, v in conn.execute(''' SELECT hash_type, hash_value FROM index_record_hash ''')} assert hashes == new_hashes, 'record hashes mismatch'
def test_driver_add_with_urls(): ''' Tests creation of a record with urls. ''' with sqlite3.connect('index.sq3') as conn: driver = SQLAlchemyIndexDriver('sqlite:///index.sq3') form = 'object' urls = ['a', 'b', 'c'] driver.add(form, urls=urls) count = conn.execute(''' SELECT COUNT(*) FROM index_record ''').fetchone()[0] assert count == 1, 'driver did not create record' count = conn.execute(''' SELECT COUNT(*) FROM index_record_url ''').fetchone()[0] assert count == 3, 'driver did not create url(s)' new_urls = sorted(url[0] for url in conn.execute(''' SELECT url FROM index_record_url ''')) assert urls == new_urls, 'record urls mismatch'
def test_driver_add_with_hashes(): """ Tests creation of a record with hashes. """ with sqlite3.connect("index.sq3") as conn: driver = SQLAlchemyIndexDriver("sqlite:///index.sq3") form = "object" hashes = {"a": "1", "b": "2", "c": "3"} driver.add(form, hashes=hashes) count = conn.execute(""" SELECT COUNT(*) FROM index_record """).fetchone()[0] assert count == 1, "driver did not create record" count = conn.execute(""" SELECT COUNT(*) FROM index_record_hash """).fetchone()[0] assert count == 3, "driver did not create hash(es)" new_hashes = { h: v for h, v in conn.execute(""" SELECT hash_type, hash_value FROM index_record_hash """) } assert hashes == new_hashes, "record hashes mismatch"
def test_driver_add_container_record(): ''' Tests creation of a record. ''' with sqlite3.connect('index.sq3') as conn: driver = SQLAlchemyIndexDriver('sqlite:///index.sq3') driver.add('container') count = conn.execute(''' SELECT COUNT(*) FROM index_record ''').fetchone()[0] assert count == 1, 'driver did not create record' record = conn.execute(''' SELECT * FROM index_record ''').fetchone() assert record[0], 'record id not populated' assert record[1], 'record baseid not populated' assert record[2], 'record rev not populated' assert record[3] == 'container', 'record form is not container' assert record[4] == None, 'record size non-null'
def test_driver_add_with_size(): ''' Tests creation of a record with size. ''' with sqlite3.connect('index.sq3') as conn: driver = SQLAlchemyIndexDriver('sqlite:///index.sq3') form = 'object' size = 512 driver.add(form, size=size) count = conn.execute(''' SELECT COUNT(*) FROM index_record ''').fetchone()[0] assert count == 1, 'driver did not create record' new_form, new_size = conn.execute(''' SELECT form, size FROM index_record ''').fetchone() assert form == new_form, 'record form mismatch' assert size == new_size, 'record size mismatch'
def test_driver_add_with_urls(): ''' Tests creation of a record with urls. ''' with sqlite3.connect('index.sq3') as conn: driver = SQLAlchemyIndexDriver('sqlite:///index.sq3') form = 'object' urls = ['a', 'b', 'c'] driver.add(form, urls=urls) count = conn.execute(''' SELECT COUNT(*) FROM index_record ''').fetchone()[0] assert count == 1, 'driver did not create record' count = conn.execute(''' SELECT COUNT(*) FROM index_record_url ''').fetchone()[0] assert count == 3, 'driver did not create url(s)' new_urls = sorted(url[0] for url in conn.execute(''' SELECT url FROM index_record_url ''')) assert urls == new_urls, 'record urls mismatch'
def test_driver_add_object_record(): """ Tests creation of a record. """ with sqlite3.connect("index.sq3") as conn: driver = SQLAlchemyIndexDriver("sqlite:///index.sq3") driver.add("object") count = conn.execute( """ SELECT COUNT(*) FROM index_record """ ).fetchone()[0] assert count == 1, "driver did not create record" record = conn.execute( """ SELECT * FROM index_record """ ).fetchone() assert record[0], "record id not populated" assert record[1], "record baseid not populated" assert record[2], "record rev not populated" assert record[3] == "object", "record form is not object" assert record[4] is None, "record size non-null"
def test_driver_add_multiple_records(): ''' Tests creation of a record. ''' with sqlite3.connect('index.sq3') as conn: driver = SQLAlchemyIndexDriver('sqlite:///index.sq3') driver.add('object') driver.add('object') driver.add('object') count = conn.execute(''' SELECT COUNT(*) FROM index_record ''').fetchone()[0] assert count == 3, 'driver did not create record(s)' records = conn.execute(''' SELECT * FROM index_record ''') for record in records: assert record[0], 'record id not populated' assert record[1], 'record rev not populated' assert record[2] == 'object', 'record form is not object' assert record[3] == None, 'record size non-null'
def test_driver_add_multiple_records(): ''' Tests creation of a record. ''' with sqlite3.connect('index.sq3') as conn: driver = SQLAlchemyIndexDriver('sqlite:///index.sq3') driver.add('object') driver.add('object') driver.add('object') count = conn.execute(''' SELECT COUNT(*) FROM index_record ''').fetchone()[0] assert count == 3, 'driver did not create record(s)' records = conn.execute(''' SELECT * FROM index_record ''') for record in records: assert record[0], 'record id not populated' assert record[1], 'record rev not populated' assert record[2] == 'object', 'record form is not object' assert record[3] == None, 'record size non-null'
def test_driver_add_with_size(): ''' Tests creation of a record with size. ''' with sqlite3.connect('index.sq3') as conn: driver = SQLAlchemyIndexDriver('sqlite:///index.sq3') form = 'object' size = 512 driver.add(form, size=size) count = conn.execute(''' SELECT COUNT(*) FROM index_record ''').fetchone()[0] assert count == 1, 'driver did not create record' new_form, new_size = conn.execute(''' SELECT form, size FROM index_record ''').fetchone() assert form == new_form, 'record form mismatch' assert size == new_size, 'record size mismatch'
def test_driver_add_with_size(): """ Tests creation of a record with size. """ with sqlite3.connect("index.sq3") as conn: driver = SQLAlchemyIndexDriver("sqlite:///index.sq3") form = "object" size = 512 driver.add(form, size=size) count = conn.execute( """ SELECT COUNT(*) FROM index_record """ ).fetchone()[0] assert count == 1, "driver did not create record" new_form, new_size = conn.execute( """ SELECT form, size FROM index_record """ ).fetchone() assert form == new_form, "record form mismatch" assert size == new_size, "record size mismatch"
def test_driver_add_with_urls(): """ Tests creation of a record with urls. """ with sqlite3.connect("index.sq3") as conn: driver = SQLAlchemyIndexDriver("sqlite:///index.sq3") form = "object" urls = ["a", "b", "c"] driver.add(form, urls=urls) count = conn.execute(""" SELECT COUNT(*) FROM index_record """).fetchone()[0] assert count == 1, "driver did not create record" count = conn.execute(""" SELECT COUNT(*) FROM index_record_url """).fetchone()[0] assert count == 3, "driver did not create url(s)" new_urls = sorted(url[0] for url in conn.execute(""" SELECT url FROM index_record_url """)) assert urls == new_urls, "record urls mismatch"
def test_driver_add_fails_with_invalid_sizes(): ''' Tests creation of a record with invalid size will fail. ''' driver = SQLAlchemyIndexDriver('sqlite:///index.sq3') with pytest.raises(ValueError): driver.add('object', size=-1)
def test_driver_add_fails_with_invalid_forms(): ''' Tests creation of a record with invalid form will fail. ''' driver = SQLAlchemyIndexDriver('sqlite:///index.sq3') with pytest.raises(ValueError): driver.add('this_is_not_a_valid_form')
def test_driver_add_with_filename(): """ Tests creation of a record with filename. """ driver = SQLAlchemyIndexDriver("sqlite:///index.sq3") form = "object" file_name = "abc" driver.add(form, file_name=file_name) with driver.session as s: assert s.query(IndexRecord).first().file_name == "abc"
def test_driver_add_with_valid_did(): """ Tests creation of a record with given valid did. """ driver = SQLAlchemyIndexDriver("sqlite:///index.sq3") form = "object" did = "3d313755-cbb4-4b08-899d-7bbac1f6e67d" driver.add(form, did=did) with driver.session as s: assert s.query(IndexRecord).first().did == did
def test_driver_add_with_version(): ''' Tests creation of a record with version string. ''' driver = SQLAlchemyIndexDriver('sqlite:///index.sq3') form = 'object' version = 'ver_123' driver.add(form, version=version) with driver.session as s: assert s.query(IndexRecord).first().version == 'ver_123'
def test_driver_add_with_version(): """ Tests creation of a record with version string. """ driver = SQLAlchemyIndexDriver("sqlite:///index.sq3") form = "object" version = "ver_123" driver.add(form, version=version) with driver.session as s: assert s.query(IndexRecord).first().version == "ver_123"
def test_driver_add_with_filename(): ''' Tests creation of a record with filename. ''' driver = SQLAlchemyIndexDriver('sqlite:///index.sq3') form = 'object' file_name = 'abc' driver.add(form, file_name=file_name) with driver.session as s: assert s.query(IndexRecord).first().file_name == 'abc'
def test_driver_add_with_valid_did(): ''' Tests creation of a record with given valid did. ''' driver = SQLAlchemyIndexDriver('sqlite:///index.sq3') form = 'object' did = '3d313755-cbb4-4b08-899d-7bbac1f6e67d' driver.add(form, did=did) with driver.session as s: assert s.query(IndexRecord).first().did == did
def test_driver_add_with_duplicate_did(): """ Tests creation of a record with duplicate did. """ driver = SQLAlchemyIndexDriver("sqlite:///index.sq3") form = "object" did = "3d313755-cbb4-4b08-899d-7bbac1f6e67d" driver.add(form, did=did) with pytest.raises(MultipleRecordsFound): driver.add(form, did=did)
def test_driver_add_with_duplicate_did(): ''' Tests creation of a record with duplicate did. ''' driver = SQLAlchemyIndexDriver('sqlite:///index.sq3') form = 'object' did = '3d313755-cbb4-4b08-899d-7bbac1f6e67d' driver.add(form, did=did) with pytest.raises(UserError): driver.add(form, did=did)
def test_driver_add_container_record(): ''' Tests creation of a record. ''' with sqlite3.connect('index.sq3') as conn: driver = SQLAlchemyIndexDriver('sqlite:///index.sq3') driver.add('container') count = conn.execute(''' SELECT COUNT(*) FROM index_record ''').fetchone()[0] assert count == 1, 'driver did not create record' record = conn.execute(''' SELECT * FROM index_record ''').fetchone() assert record[0], 'record id not populated' assert record[1], 'record rev not populated' assert record[2] == 'container', 'record form is not container' assert record[3] == None, 'record size non-null'