From ffd1b6e2adb8de75fe98727ec485966ac88a091b Mon Sep 17 00:00:00 2001 From: raisans138 Date: Mon, 24 Apr 2017 22:01:44 +0200 Subject: [PATCH] =?UTF-8?q?Quitando=20c=C3=B3digo=20repetido?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Metronus-Project/metronus_app/common_utils.py | 98 ++++++++++++++++++- .../test/testDepartmentMetrics.py | 96 +----------------- .../metronus_app/test/testProjectMetrics.py | 29 +----- .../metronus_app/test/testTaskMetrics.py | 94 ------------------ 4 files changed, 100 insertions(+), 217 deletions(-) diff --git a/Metronus-Project/metronus_app/common_utils.py b/Metronus-Project/metronus_app/common_utils.py index 96b34b4..f45f787 100644 --- a/Metronus-Project/metronus_app/common_utils.py +++ b/Metronus-Project/metronus_app/common_utils.py @@ -1,16 +1,24 @@ from django.core.exceptions import PermissionDenied from metronus_app.model.administrator import Administrator from metronus_app.model.employee import Employee -from django.core.exceptions import ObjectDoesNotExist from metronus.settings import DEFAULT_FROM_EMAIL from metronus_app.model.projectDepartmentEmployeeRole import ProjectDepartmentEmployeeRole from django.template import loader from django.core.mail import EmailMultiAlternatives from django.contrib.auth.models import User +from metronus_app.model.timeLog import TimeLog +from django.core.exceptions import ObjectDoesNotExist +from metronus_app.model.company import Company +from metronus_app.model.role import Role +from metronus_app.model.projectDepartment import ProjectDepartment +from metronus_app.model.task import Task from PIL import Image import sys +import string +import random +import json # Image limit parameters @@ -148,3 +156,91 @@ def is_email_unique(email): Checks the email is unique and does not exists in the database """ return User.objects.filter(email=email).count() == 0 + +def ranstr(): + """ Returns a 10-character random string""" + return ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(10)) + + +# Son herramientas sorpresa que nos ayudarán más tarde + +def check_json_metrics_are_equal(self, response_string, data): + """ + Checks the data provided by the JSON equals the real data + """ + response = json.loads(response_string) + + self.assertTrue('names' in response) + self.assertTrue('values' in response) + + self.assertEquals(len(response['names']), len(data['names'])) + self.assertEquals(len(response['values']), len(data['values'])) + + for name, val in zip(data['names'], data['values']): + self.assertTrue(name in response['names']) + self.assertTrue(val in response['values']) + + ind = response['names'].index(name) + + self.assertEquals(val, response['values'][ind]) + + +def create_employee_in_projdept(project, department): + """ + creates an employee and assigns him/her a new role + """ + user = User.objects.create_user( + username=ranstr(), + password=ranstr(), + email=ranstr() + "@metronus.es", + first_name=ranstr(), + last_name=ranstr() + ) + + employee = Employee.objects.create( + user=user, + user_type="E", + identifier=ranstr(), + phone="123123123", + company_id=Company.objects.get(company_name="company1") + ) + + try: + pd = ProjectDepartment.objects.get(project_id=project, department_id=department) + except ObjectDoesNotExist: + pd = ProjectDepartment.objects.create(project_id=project, department_id=department) + + role = Role.objects.get(tier=random.choice([10, 20, 30, 40, 50])) + ProjectDepartmentEmployeeRole.objects.create(projectDepartment_id=pd, role_id=role, employee_id=employee) + + return employee + + +def create_task_in_projdept(project, department): + """ + creates a task for a given project and department, either with production goal or not + """ + try: + pd = ProjectDepartment.objects.get(project_id=project, department_id=department) + except ObjectDoesNotExist: + pd = ProjectDepartment.objects.create(project_id=project, department_id=department) + + Task.objects.create( + name=ranstr(), + description=ranstr(), + actor_id=Administrator.objects.get(identifier="adm01"), + projectDepartment_id=pd + ) + + +def create_timelog_in_task(task, duration, date, employee=None): + """ + creates a timelog for an employee involving a task during a specific date + """ + TimeLog.objects.create( + description=ranstr(), + workDate=date, + duration=duration, + task_id=task, + employee_id=Employee.objects.get(identifier="emp01") if employee is None else employee + ) diff --git a/Metronus-Project/metronus_app/test/testDepartmentMetrics.py b/Metronus-Project/metronus_app/test/testDepartmentMetrics.py index cd108d3..9a9ed61 100644 --- a/Metronus-Project/metronus_app/test/testDepartmentMetrics.py +++ b/Metronus-Project/metronus_app/test/testDepartmentMetrics.py @@ -1,6 +1,5 @@ from django.contrib.auth.models import User from django.test import TestCase, Client -from django.core.exceptions import ObjectDoesNotExist from metronus_app.model.employee import Employee from metronus_app.model.projectDepartment import ProjectDepartment @@ -12,100 +11,9 @@ from metronus_app.model.role import Role from metronus_app.model.administrator import Administrator from metronus_app.model.department import Department - -import string +from metronus_app.common_utils import (check_json_metrics_are_equal, create_employee_in_projdept, + create_task_in_projdept, create_timelog_in_task) import random -import json - - -def ranstr(): - """Returns a 10-character random string""" - return ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(10)) - - -# Son herramientas sorpresa que nos ayudarán más tarde - -def check_json_metrics_are_equal(self, response_string, data): - """ - Checks the data provided by the JSON equals the real data - """ - response = json.loads(response_string) - - self.assertTrue('names' in response) - self.assertTrue('values' in response) - - self.assertEquals(len(response['names']), len(data['names'])) - self.assertEquals(len(response['values']), len(data['values'])) - - for name, val in zip(data['names'], data['values']): - self.assertTrue(name in response['names']) - self.assertTrue(val in response['values']) - - ind = response['names'].index(name) - - self.assertEquals(val, response['values'][ind]) - - -def create_employee_in_projdept(project, department): - """ - creates an employee and assigns him/her a new role - """ - user = User.objects.create_user( - username=ranstr(), - password=ranstr(), - email=ranstr() + "@metronus.es", - first_name=ranstr(), - last_name=ranstr() - ) - - employee = Employee.objects.create( - user=user, - user_type="E", - identifier=ranstr(), - phone="123123123", - company_id=Company.objects.get(company_name="company1") - ) - - try: - pd = ProjectDepartment.objects.get(project_id=project, department_id=department) - except ObjectDoesNotExist: - pd = ProjectDepartment.objects.create(project_id=project, department_id=department) - - role = Role.objects.get(tier=random.choice([10, 20, 30, 40, 50])) - ProjectDepartmentEmployeeRole.objects.create(projectDepartment_id=pd, role_id=role, employee_id=employee) - - return employee - - -def create_task_in_projdept(project, department): - """ - creates a task for a given project and department - """ - try: - pd = ProjectDepartment.objects.get(project_id=project, department_id=department) - except ObjectDoesNotExist: - pd = ProjectDepartment.objects.create(project_id=project, department_id=department) - - Task.objects.create( - name=ranstr(), - description=ranstr(), - actor_id=Administrator.objects.get(identifier="adm01"), - projectDepartment_id=pd - ) - - -def create_timelog_in_task(task, duration, date, employee=None): - """ - creates a timelog for an employee involving a task during a specific date - """ - TimeLog.objects.create( - description=ranstr(), - workDate=date, - duration=duration, - task_id=task, - employee_id=Employee.objects.get(identifier="emp01") if employee is None else employee - ) - # ################################# Party hard a partir de aquí ################################## class DepartmentMetricsTestCase(TestCase): diff --git a/Metronus-Project/metronus_app/test/testProjectMetrics.py b/Metronus-Project/metronus_app/test/testProjectMetrics.py index 64ce6f6..23d06df 100644 --- a/Metronus-Project/metronus_app/test/testProjectMetrics.py +++ b/Metronus-Project/metronus_app/test/testProjectMetrics.py @@ -11,35 +11,8 @@ from metronus_app.model.role import Role from metronus_app.model.administrator import Administrator from metronus_app.model.department import Department -import string +from metronus_app.common_utils import check_json_metrics_are_equal, ranstr import random -import json - - -def check_json_metrics_are_equal(self, response_string, data): - """ - Checks the data provided by the JSON equals the real data - """ - response = json.loads(response_string) - - self.assertTrue('names' in response) - self.assertTrue('values' in response) - - self.assertEquals(len(response['names']), len(data['names'])) - self.assertEquals(len(response['values']), len(data['values'])) - - for name, val in zip(data['names'], data['values']): - self.assertTrue(name in response['names']) - self.assertTrue(val in response['values']) - - ind = response['names'].index(name) - - self.assertEquals(val, response['values'][ind]) - - -def ranstr(): - """Returns a 10-character random string""" - return ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(10)) class ProjectMetricsTestCase(TestCase): diff --git a/Metronus-Project/metronus_app/test/testTaskMetrics.py b/Metronus-Project/metronus_app/test/testTaskMetrics.py index 6b2bf05..e7163c7 100644 --- a/Metronus-Project/metronus_app/test/testTaskMetrics.py +++ b/Metronus-Project/metronus_app/test/testTaskMetrics.py @@ -1,14 +1,9 @@ -import string -import random -import json from django.contrib.auth.models import User from django.test import TestCase, Client -from django.core.exceptions import ObjectDoesNotExist from metronus_app.model.employee import Employee from metronus_app.model.projectDepartment import ProjectDepartment from metronus_app.model.projectDepartmentEmployeeRole import ProjectDepartmentEmployeeRole from metronus_app.model.task import Task -from metronus_app.model.timeLog import TimeLog from metronus_app.model.project import Project from metronus_app.model.company import Company from metronus_app.model.role import Role @@ -16,95 +11,6 @@ from metronus_app.model.department import Department - -def ranstr(): - """ Returns a 10-character random string""" - return ''.join(random.choice(string.ascii_uppercase + string.digits) for _ in range(10)) - - -# Son herramientas sorpresa que nos ayudarán más tarde - -def check_json_metrics_are_equal(self, response_string, data): - """ - Checks the data provided by the JSON equals the real data - """ - response = json.loads(response_string) - - self.assertTrue('names' in response) - self.assertTrue('values' in response) - - self.assertEquals(len(response['names']), len(data['names'])) - self.assertEquals(len(response['values']), len(data['values'])) - - for name, val in zip(data['names'], data['values']): - self.assertTrue(name in response['names']) - self.assertTrue(val in response['values']) - - ind = response['names'].index(name) - - self.assertEquals(val, response['values'][ind]) - - -def create_employee_in_projdept(project, department): - """ - creates an employee and assigns him/her a new role - """ - user = User.objects.create_user( - username=ranstr(), - password=ranstr(), - email=ranstr() + "@metronus.es", - first_name=ranstr(), - last_name=ranstr() - ) - - employee = Employee.objects.create( - user=user, - user_type="E", - identifier=ranstr(), - phone="123123123", - company_id=Company.objects.get(company_name="company1") - ) - - try: - pd = ProjectDepartment.objects.get(project_id=project, department_id=department) - except ObjectDoesNotExist: - pd = ProjectDepartment.objects.create(project_id=project, department_id=department) - - role = Role.objects.get(tier=random.choice([10, 20, 30, 40, 50])) - ProjectDepartmentEmployeeRole.objects.create(projectDepartment_id=pd, role_id=role, employee_id=employee) - - return employee - - -def create_task_in_projdept(project, department): - """ - creates a task for a given project and department, either with production goal or not - """ - try: - pd = ProjectDepartment.objects.get(project_id=project, department_id=department) - except ObjectDoesNotExist: - pd = ProjectDepartment.objects.create(project_id=project, department_id=department) - - Task.objects.create( - name=ranstr(), - description=ranstr(), - actor_id=Administrator.objects.get(identifier="adm01"), - projectDepartment_id=pd - ) - - -def create_timelog_in_task(task, duration, date, employee=None): - """ - creates a timelog for an employee involving a task during a specific date - """ - TimeLog.objects.create( - description=ranstr(), - workDate=date, - duration=duration, - task_id=task, - employee_id=Employee.objects.get(identifier="emp01") if employee is None else employee - ) - # ################################# Party hard a partir de aquí ##################################