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'
Esempio n. 3
0
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'
Esempio n. 4
0
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"
Esempio n. 5
0
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'
Esempio n. 10
0
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'
Esempio n. 11
0
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"
Esempio n. 13
0
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
Esempio n. 18
0
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"
Esempio n. 20
0
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'
Esempio n. 21
0
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)
Esempio n. 23
0
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'