Skip to content

Commit

Permalink
fix scripts, switch to black, simplify padding (#4)
Browse files Browse the repository at this point in the history
* switch to entrypoints and delete unused cfme script

* fix setup.py

* flake8 fix in csv_unicode

* simplify padding the csv import data

* fix gitignore and add pre commit config for later use
  • Loading branch information
RonnyPfannschmidt authored and mkoura committed Jun 15, 2018
1 parent cb8cb91 commit bded2df
Show file tree
Hide file tree
Showing 8 changed files with 53 additions and 98 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Expand Up @@ -38,6 +38,8 @@ htmlcov/
.coverage
.coverage.*
.cache

.pytest_cache
nosetests.xml
coverage.xml
*,cover
Expand Down
19 changes: 19 additions & 0 deletions .pre-commit-config.yaml
@@ -0,0 +1,19 @@
repos:
- repo: https://github.com/ambv/black
rev: 18.4a4
hooks:
- id: black
args: [--safe, --quiet]
language_version: python3.6
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v1.2.3
hooks:
- id: trailing-whitespace
- id: end-of-file-fixer
- id: check-yaml
- id: debug-statements
- id: flake8
- repo: https://github.com/asottile/pyupgrade
rev: v1.2.0
hooks:
- id: pyupgrade
53 changes: 0 additions & 53 deletions cfme_jenkins_dumper.py

This file was deleted.

13 changes: 0 additions & 13 deletions csv2sqlite.py

This file was deleted.

44 changes: 27 additions & 17 deletions dump2polarion/csv2sqlite_cli.py
Expand Up @@ -15,6 +15,16 @@
from dump2polarion import csvtools, utils
from dump2polarion.exceptions import Dump2PolarionException

REQUIRED_KEYS = (
"verdict",
"last_status",
"exported",
"time",
"comment",
"stdout",
"stderr",
"user1",
)

# pylint: disable=invalid-name
logger = logging.getLogger(__name__)
Expand All @@ -35,33 +45,33 @@ def get_args(args=None):
def dump2sqlite(records, output_file):
"""Dumps tests results to database."""
results_keys = list(records.results[0].keys())
keys_len = len(results_keys)
for key in (
'verdict', 'last_status', 'exported', 'time', 'comment', 'stdout', 'stderr', 'user1'):
pad_data = []

for key in REQUIRED_KEYS:
if key not in results_keys:
results_keys.append(key)
pad_data.append("")

conn = sqlite3.connect(os.path.expanduser(output_file), detect_types=sqlite3.PARSE_DECLTYPES)
conn = sqlite3.connect(
os.path.expanduser(output_file),
detect_types=sqlite3.PARSE_DECLTYPES)

# in each row there needs to be data for every column
pad_data = ['' for __ in range(len(results_keys) - keys_len)]
# last column is current time
now = datetime.datetime.utcnow()

def _extend_row(row):
if pad_data:
row.extend(pad_data)
row.append(now)
return row
pad_data.append(datetime.datetime.utcnow())

to_db = [_extend_row(list(row.values())) for row in records.results]
to_db = [list(row.values()) + pad_data for row in records.results]

cur = conn.cursor()
cur.execute(
"CREATE TABLE testcases ({},sqltime TIMESTAMP)".format(
','.join(['{} TEXT'.format(key) for key in results_keys])))
cur.executemany("INSERT INTO testcases VALUES ({},?)".format(
','.join(['?' for __ in results_keys])), to_db)
','.join('{} TEXT'.format(key) for key in results_keys)))
cur.executemany(
"INSERT INTO testcases VALUES ({},?)".format(
",".join(["?"] * len(results_keys))
),
to_db,
)

if records.testrun:
cur.execute("CREATE TABLE testrun (testrun TEXT)")
Expand Down Expand Up @@ -101,7 +111,7 @@ def main(args=None):
dump2sqlite(records, args.output_file)
# pylint: disable=broad-except
except Exception as err:
logger.fatal(err)
logger.exception(err)
return 1

return 0
2 changes: 1 addition & 1 deletion dump2polarion/csv_unicode.py
Expand Up @@ -34,7 +34,7 @@ def __init__(self, f, dialect=csv.excel, encoding='utf-8', **kwds):

def next(self):
row = self.reader.next()
return [unicode(s, 'utf-8') for s in row]
return [s.decode('utf-8') for s in row]

def __iter__(self):
return self
13 changes: 0 additions & 13 deletions polarion_dumper.py

This file was deleted.

5 changes: 4 additions & 1 deletion setup.py
Expand Up @@ -13,7 +13,10 @@
author_email='mkourim@redhat.com',
license='GPL',
packages=find_packages(exclude=('tests',)),
scripts=['csv2sqlite.py', 'polarion_dumper.py'],
entry_points={'console_scripts': [
'csv2sqlite.py = dump2polarion.csv2sqlite_cli:main',
'polarion_dumper.py = dump2polarion.dumper_cli:main'
]},
setup_requires=['setuptools_scm'],
install_requires=['requests', 'pyyaml'],
keywords=['polarion', 'testing'],
Expand Down

0 comments on commit bded2df

Please sign in to comment.