Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import csv
- import os
- from datetime import datetime
- # Requires pip install github3.py
- from github3 import login
- def get_rows(filename):
- """A generator that returns rows of a csv as a dictionary """
- with open(filename, 'r', encoding='ISO-8859-1') as csvfile:
- datareader = csv.DictReader(csvfile)
- for row in datareader:
- yield {key: value for key, value in row.items()}
- def parse_title(title):
- """Exports from test rail seem to have numbers at the beginning.
- Parse out numbers if they exist or return the title
- """
- if title[0].isdigit():
- title = title.split(' - ')[1]
- return title
- def import_issue(repo, issue, created_at=None, milestone=None):
- if milestone:
- issue['milestone'] = milestone
- if created_at:
- issue['created_at'] = created_at
- else:
- issue['created_at'] = datetime.utcnow()
- repo.import_issue(**issue)
- return
- def parse_test_case(row):
- """Take in a row from a test case export and return the necessary info as an issue"""
- title = "As a tester, I'd like a webview test that asserts {}".format(parse_title(row['Title']))
- if not row['Steps']:
- body = parse_title(row['Title'])
- else:
- body = row['Steps'] + '\n' + row['Expected Result']
- return {'title': title, 'body': body}
- if __name__ == '__main__':
- user = os.environ['GITHUB_USER']
- password = os.environ['GITHUB_PASSWORD']
- repo = 'cnx-automation'
- milestone = 1
- gh = login(user, password=password)
- repo = gh.repository('openstax', repo)
- for row in get_rows('input/webview_test_cases.csv'):
- if row['To be automated Q1'].lower() == 'yes' and row['Is Automated?'].lower() == 'no':
- issue = parse_test_case(row)
- import_issue(repo, issue, milestone=milestone)
Add Comment
Please, Sign In to add comment