diff --git a/setup.cfg b/setup.cfg index ee7b7db..a0ebc81 100644 --- a/setup.cfg +++ b/setup.cfg @@ -13,10 +13,9 @@ multi_line_output=5 [tool:pytest] testpaths = tests src norecursedirs = .env .github .vscode -show_capture = True minversion = 3.5 console_output_style = count -addopts = --pylint --cov-branch --cov=conductor --cov-report term --cov-report xml:cov.xml --instafail --isort +addopts = --pylint --cov-branch --cov=conductor --cov-report term --cov-report xml:cov.xml --instafail --isort --show-capture all filterwarnings = ignore:Call to deprecated create function FieldDescriptor ignore:Call to deprecated create function Descriptor diff --git a/setup.py b/setup.py index f089592..0d3f13f 100644 --- a/setup.py +++ b/setup.py @@ -35,6 +35,7 @@ install_requires=[ 'colorama==0.*', 'docopt==0.*', + 'flask==1.*', 'psycopg2-binary==2.*', 'PyGithub==1.*', 'pygsheets==2.*', @@ -44,7 +45,7 @@ extras_require={ 'cloud-run': [ 'flask==1.*', - 'google-cloud-secret-manager==1.*', + 'google-cloud-secret-manager==2.5.*', 'gunicorn==20.*', ], 'tests': [ @@ -52,11 +53,11 @@ 'pylint==2.*', 'pytest-cov==2.*', 'pytest-instafail==0.4.*', - 'pytest-isort==1.*', + 'pytest-isort==2.*', 'pytest-mock==3.*', 'pytest-pylint==0.17.*', 'pytest-watch==4.*', - 'pytest==5.*', + 'pytest==6.*', 'yapf==0.*', ] }, diff --git a/src/conductor/checks.py b/src/conductor/checks.py index e39d3c2..7c95639 100644 --- a/src/conductor/checks.py +++ b/src/conductor/checks.py @@ -434,7 +434,7 @@ def create_client_with_secret_manager(project, secret_name): """ client = secretmanager.SecretManagerServiceClient() name = client.secret_version_path(project, secret_name, 'latest') - secrets = client.access_secret_version(name) + secrets = client.access_secret_version(request = {'name': name}) if secrets is None: raise Exception('The project secret might not exist or is incorrect; Could not create client.') @@ -488,18 +488,18 @@ def get_users_task_statuses(issue_body): the number of completed tasks """ users = {} - expression = r'(?P~?)- \[(?P[x| ]?)\] .* \(*?(?P@..*?\b).*\)' + expression = r'\s- \[(?P[x| ]?)\] .* \(*?(?P@..*?\b).*\)~?' + strike_expression = r'~.*~' for match in re.finditer(expression, issue_body, re.MULTILINE): user = match.group('user') - if match.group('strikethrough') or user == '@assigned': + if re.search(strike_expression, match.group()) or user == '@assigned': continue - is_complete = match.group('is_completed').strip().lower() == 'x' or len(match.group('strikethrough')) > 0 + is_complete = match.group('is_completed').strip().lower() == 'x' users.setdefault(user, []).append(is_complete) tasks = [] - for user in users: - task_results = users[user] + for user, task_results in users.items(): tasks.append((user, len(task_results), task_results.count(True))) return tasks diff --git a/src/conductor/server.py b/src/conductor/server.py index 9ff85fc..88ce13b 100644 --- a/src/conductor/server.py +++ b/src/conductor/server.py @@ -45,7 +45,7 @@ def schedule(): client = secretmanager.SecretManagerServiceClient() name = client.secret_version_path(PROD_PROJECT, 'conductor-connections', 'latest') - secrets = client.access_secret_version(name) + secrets = client.access_secret_version(request = {'name': name}) secrets = json.loads(secrets.payload.data.decode('UTF-8')) secrets['client_builder'] = lambda: GSheetChecker.create_client_with_secret_manager(PROD_PROJECT, 'stewardship-sa') diff --git a/tests/data/tasks_issue_body_mock_strikethrough.txt b/tests/data/tasks_issue_body_mock_strikethrough.txt index dc5c7e8..07cd79b 100644 --- a/tests/data/tasks_issue_body_mock_strikethrough.txt +++ b/tests/data/tasks_issue_body_mock_strikethrough.txt @@ -21,6 +21,7 @@ When the champion from your team has completed the triage, check [x] the checkbo - [ ] Dev Team Triage (@steveoh) ~- [ ] Cadastre Team Triage (@rkelson)~ -~ [ ] Cadastre Team Triage (@rkelson)~ +- [ ] ~Cadastre Team Triage (@rkelson)~ # We are introducing data diff --git a/tests/test_conductor.py b/tests/test_conductor.py index 716a61d..267b1fa 100644 --- a/tests/test_conductor.py +++ b/tests/test_conductor.py @@ -16,7 +16,7 @@ from conductor.checks import GSheetChecker, MetaTableChecker, TableChecker, UrlChecker from conductor.connections_sample import SECRETS -REQUESTER = Requester('token', None, None, 'http://gis.utah.gov', 0, 'client-id', 'secret', '', 1, False, {}) +REQUESTER = Requester('token', None, None, 'http://gis.utah.gov', 0, 'client-id', 'secret', '', 1, False) def noop(): diff --git a/tests/test_task_checker.py b/tests/test_task_checker.py index 1c22135..7d54af3 100644 --- a/tests/test_task_checker.py +++ b/tests/test_task_checker.py @@ -5,7 +5,6 @@ A module that contains tests for the TaskChecker module. """ -from collections import namedtuple from pathlib import Path from conductor.checks import TaskChecker, get_users_task_statuses