Coverage now uses a SQLite database, so it's much easier to edit the data directly

This commit is contained in:
Raoul Snyman 2020-09-28 11:25:59 -07:00
parent 5371d01a99
commit 6d56fc39ec
Signed by: raoul
GPG Key ID: F55BCED79626AE9C
1 changed files with 14 additions and 13 deletions

View File

@ -1,9 +1,8 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import sqlite3
import os import os
from argparse import ArgumentParser from argparse import ArgumentParser
from coverage import CoverageData
def get_args(): def get_args():
parser = ArgumentParser() parser = ArgumentParser()
@ -12,19 +11,21 @@ def get_args():
def fix_paths(coverage_file): def fix_paths(coverage_file):
# Get the file name, and extrapolate the base path
file_name = os.path.abspath(coverage_file) file_name = os.path.abspath(coverage_file)
base_path = os.path.dirname(file_name) base_path = os.path.dirname(file_name)
data = CoverageData() # Open a connection to the SQLite database
data.read_file(file_name) db = sqlite3.connect(file_name)
new_lines = {} cursor = db.cursor()
for fname, report in data._lines.items(): # Get all the files in the database and update their filenames
if fname.startswith('C:\\'): cursor.execute('SELECT id, path FROM file')
# This is a Windows path, let's fudge it new_files = []
fname = fname.replace('C:', '').replace('\\', '/') for row in cursor.fetchall():
new_fname = os.path.join(base_path, fname.split('openlp/openlp/')[-1]) new_files.append((os.path.join(base_path, row[1].split('openlp/openlp/')[-1]), row[0]))
new_lines[new_fname] = report cursor.executemany('UPDATE file SET path = ? WHERE id = ?', new_files)
data._lines = new_lines db.commit()
data.write_file(file_name) cursor.close()
db.close()
if __name__ == '__main__': if __name__ == '__main__':