Ejemplo n.º 1
0
	def test_should_ignore_rows_with_too_little_columns(self):
		csv_str = """
QA		PLANNED		09-12-17 14:50	09-12-17 07:00	09-12-17 14:50	7h 50m
Wait for dependencies	Gate	PLANNED			09-12-17 07:00	09-12-17 08:00	1h
"""
		tasks = CsvParser(csv_str).parse()
		self.assertEqual(len(tasks), 0)
Ejemplo n.º 2
0
	def test_should_fail_on_tasks_without_phase_before_it(self):
		csv_str = """
Wait for dependencies	Gate	PLANNED			09-12-17 07:00	09-12-17 08:00	1h				No	0
"""
		with self.assertRaises(Exception) as cm:
			tasks = CsvParser(csv_str).parse()

		self.assertEqual(cm.exception.message, "Expect a phase name by now - something wrong with the sheet")
Ejemplo n.º 3
0
	def test_should_not_fail_on_empty(self):
		csv_str = """


"""
		
		tasks = CsvParser(csv_str).parse()
		self.assertEqual(len(tasks), 0)
Ejemplo n.º 4
0
	def test_should_parse_task_with_correct_phase(self):
		csv_str = """
QA		PLANNED		09-12-17 14:50	09-12-17 07:00	09-12-17 14:50	7h 50m					
Wait for dependencies	Gate	PLANNED			09-12-17 07:00	09-12-17 08:00	1h		team1		No	0
UAT		PLANNED			09-12-17 14:50	09-12-17 22:51	8h 1m					
Acceptance environment available	Manual	PLANNED			09-12-17 14:50	09-12-17 15:50	1h		team2		No	0
"""
		tasks = CsvParser(csv_str).parse()

		self.assertEqual(len(tasks), 2)
		
		task = tasks[0]
		self.assertEqual(task['phase_name'], "QA")
		self.assertEqual(task['title'], "Wait for dependencies")
		self.assertEqual(task['type'], "Gate")
		self.assertEqual(task['team'], "team1")
		self.assertEqual(task['description'], "")

		task2 = tasks[1]
		self.assertEqual(task2['phase_name'], "UAT")
		self.assertEqual(task2['title'], "Acceptance environment available")
		self.assertEqual(task2['type'], "Manual")
		self.assertEqual(task2['team'], "team2")
		self.assertEqual(task2['description'], "")
Ejemplo n.º 5
0
	def test_parse(self):
		tasks = []
		with open('src/test/jython/unittests/sample_release.csv', 'rb') as csv_str:
			tasks = CsvParser(csv_str.read()).parse()

		self.assertEqual(len(tasks), 33)
Ejemplo n.º 6
0
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#

import json, sys

from csv_import.CsvParser import CsvParser
from csv_import.XlReleaseClient import XlReleaseClient

for item in request.entity:
    if item['name'] == 'csv':
        csv_str = str(item['value'])
    if item['name'] == 'template_name':
        template_name = item['value']

try:
    tasks = CsvParser(csv_str).parse()
    xlr_client = XlReleaseClient(templateApi, phaseApi, taskApi)
    template = xlr_client.create_blank_template(template_name)
    xlr_client.add_tasks_to_template(template, tasks)
    xlr_client.add_teams_to_template(template, tasks)

    response.statusCode = 201
    response.entity = {
        "id": template.id,
        "message": "Successfully imported template [%s]" % template_name
    }
except (RuntimeError, TypeError, NameError) as e:
    logger.error("Unexpected error:", str(e))
    print str(e)

    response.statusCode = 500