4ac47dad9b
and small refactoring of description parsing Add update_case() method to testrail client Pull parsing custom cases fields into _get_custom_cases_fields() method Add _get_fields_to_update() method to test cases uploader Change log message for up-to-date cases Add new file: datetime_util.py Add method that converts duration to testrail estimate format Register new file in the doc/testrail.rst Change duration regexp and pull it into compiled instance Pull tests discovering and test plan creation into _create_test_plan_from_registry() function Pull various case checks into _is_case_processable() function Pull test case name getter actions into _get_test_case_name() function Pull case 'not included' verification into _is_not_included() function Pull case 'excluded' verification into _is_excluded() function Pull docstring getter actions into _get_docstring() function Pull docstring parsing actions into _parse_docstring() function Add support for multiline title and test case steps Change-Id: I2245b939e91bab9d4f48b072e89d86163a0dd6b0 Closes-Bug: #1558008
37 lines
1.2 KiB
Python
37 lines
1.2 KiB
Python
# Copyright 2016 Mirantis, Inc.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
|
# not use this file except in compliance with the License. You may obtain
|
|
# a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
# License for the specific language governing permissions and limitations
|
|
# under the License.
|
|
|
|
from __future__ import division
|
|
|
|
|
|
MINUTE = 60
|
|
HOUR = MINUTE ** 2
|
|
DAY = HOUR * 8
|
|
WEEK = DAY * 5
|
|
|
|
|
|
def duration_to_testrail_estimate(duration):
|
|
"""Converts duration in minutes to testrail estimate format
|
|
"""
|
|
seconds = duration * MINUTE
|
|
week = seconds // WEEK
|
|
days = seconds % WEEK // DAY
|
|
hours = seconds % DAY // HOUR
|
|
minutes = seconds % HOUR // MINUTE
|
|
estimate = ''
|
|
for val, char in ((week, 'w'), (days, 'd'), (hours, 'h'), (minutes, 'm')):
|
|
if val:
|
|
estimate = ' '.join([estimate, '{0}{1}'.format(val, char)])
|
|
return estimate.lstrip()
|