Example #1
0
def test_source_file_crud():
	db_url = 'postgresql://*****:*****@localhost:5432/src_file_crud'
	db = SQLAlchemyORM(db_url)
	db.create_all(True)

	# create
	filepath = 'some/path/file.src'
	file = File(filepath)
	src_file = SourceFile(file)
	f1 = Operation('get', src_file)
	f2 = Operation('add', src_file)
	c1 = Call('call', src_file)	
	src_file.add_code_element(f1)
	src_file.add_code_element(f2)
	src_file.add_code_element(c1)

	session = db.create_session()
	session.add(file)
	session.commit()

	# read
	src_filedb = session.query(SourceFile).get(1)
	assert src_filedb.file_id == file.id
	assert src_filedb.file.ext == file.ext
	assert src_filedb.code_element_by_key(f1.key)
	assert src_filedb.code_element_by_key(f2.key)
	assert src_filedb.code_element_by_key(c1.key)

	# update
	file.ext = 'crs'
	f3 = Operation('update', src_file)
	session.add(f3)
	session.commit()
	src_filedb = session.query(SourceFile).get(1)
	code_elements = session.query(Operation).filter_by(source_file_id=src_filedb.id).all()	
	assert src_filedb.file.ext == file.ext
	assert len(code_elements) == 3

	# delete
	session.delete(src_file)
	session.commit()
	src_filedb = session.query(SourceFile).get(1)
	filedb = session.query(File).get(1)
	funcsdb = session.query(Operation).all()
	assert src_filedb is None
	assert filedb.name == 'file'
	assert len(funcsdb) == 0

	session.close()
	db.drop_all()
Example #2
0
def test_file_crud():
	db_url = 'postgresql://*****:*****@localhost:5432/file_crud'
	db = SQLAlchemyORM(db_url)
	db.create_all(True)

	# create
	filepath = 'some/path/file.ext'
	file = File(filepath)
	assert file.name == 'file'
	assert file.path == 'some/path'
	assert file.ext == 'ext'
	assert file.fullpath == filepath

	session = db.create_session()	
	session.add(file)
	session.commit()

	# read	
	filedb = session.query(File).get(1)
	assert filedb.name == file.name
	assert filedb.path == file.path
	assert filedb.ext == file.ext
	assert filedb.fullpath == file.fullpath

	# update
	file.name = 'renamed_file'
	assert file.fullpath == 'some/path/renamed_file.ext'
	file.path = 'new/path'
	assert file.fullpath == 'new/path/renamed_file.ext'
	file.ext = 'txe'
	assert file.fullpath == 'new/path/renamed_file.txe'
	file.fullpath = 'new/full/path/renamed_file.txe'	
	assert file.fullpath == 'new/full/path/renamed_file.txe'
	session.commit()	
	filedb = session.query(File).get(1)
	assert filedb.fullpath == file.fullpath
	assert filedb.name == file.name

	# delete
	session.delete(file)
	session.commit()
	filedb = session.query(File).get(1)
	assert filedb is None

	session.close()
	db.drop_all()