def setUp(self): super().setUp() self.unit = utils.create_unit() self.group = utils.create_group() for p in Permission.objects.all(): self.group.permissions.add(p) self.user.groups.add(self.group) self.test_list = utils.create_test_list() self.tnum_1 = utils.create_test(name="test1") self.tnum_2 = utils.create_test(name="test2") self.tcomp = utils.create_test(name="testc", test_type=models.COMPOSITE) self.tcomp.calculation_procedure = "result = test1 + test2 + 2" self.tcomp.save() self.tdate = utils.create_test(name="testdate", test_type=models.DATE) self.tdatetime = utils.create_test(name="testdatetime", test_type=models.DATETIME) self.tmult = utils.create_test(name="testmult", choices="choicea,choiceb", test_type=models.MULTIPLE_CHOICE) self.tstring = utils.create_test(name="teststring", test_type=models.STRING) self.tstringcomp = utils.create_test(name="teststringcomp", test_type=models.STRING_COMPOSITE) self.tstringcomp.calculation_procedure = "teststringcomp = teststring + testmult" self.tstringcomp.save() all_tests = [ self.tnum_1, self.tnum_2, self.tcomp, self.tdate, self.tdatetime, self.tmult, self.tstring, self.tstringcomp, ] for o, t in enumerate(all_tests): utils.create_test_list_membership(self.test_list, t, order=o) self.utc = utils.create_unit_test_collection( unit=self.unit, test_collection=self.test_list) self.utc.visible_to.add(self.group) self.url = reverse("perform_qa", kwargs={'pk': self.utc.pk}) self.status = models.TestInstanceStatus.objects.create( name="foo", slug="foo", is_default=True, ) sl_utils.create_service_event_status(is_default=True) sl_utils.create_unit_service_area(self.utc.unit) sl_utils.create_service_type()
def test_with_rts_and_service_type(self): """If we filter for a unit, and service type, the searcher should only return templates where the return to service test lists are all assigned to that unit and the template has the correct service_type.""" st = sl_utils.create_service_type() tl1 = qa_utils.create_test_list() tl2 = qa_utils.create_test_list() u1 = qa_utils.create_unit() qa_utils.create_unit_test_collection(unit=u1, test_collection=tl1) # one template with RTS that is assigned to the unit t1 = self.create_template("1", service_type=st) t1.return_to_service_test_lists.add(tl1) # one template with RTS that is not assigned to the unit t2 = self.create_template("2", service_type=st) t2.return_to_service_test_lists.add(tl2) # one template with no RTS and correct service_type t3 = self.create_template("3", service_type=st) # one template with no RTS and no service_type self.create_template("4") resp = self.client.get(self.url, data={ 'unit': u1.pk, 'service_type': st.pk }) data = resp.json() assert len(data) == 2 assert [t['id'] for t in data] == [t1.id, t3.id]
def setUp(self): self.factory = RequestFactory() self.user = create_user(is_superuser=True) self.client.login(username='******', password='******') self.u1 = qa_utils.create_unit() self.u2 = qa_utils.create_unit() self.u3 = qa_utils.create_unit() self.usa1 = sl_utils.create_unit_service_area(unit=self.u1) self.usa2 = sl_utils.create_unit_service_area(unit=self.u2) self.usa2 = sl_utils.create_unit_service_area(unit=self.u2) self.usa3 = sl_utils.create_unit_service_area(unit=self.u3) self.usa3 = sl_utils.create_unit_service_area(unit=self.u3) self.usa3 = sl_utils.create_unit_service_area(unit=self.u3) qa_utils.create_unit_test_collection(unit=self.u1) self.utc = qa_utils.create_unit_test_collection(unit=self.u2) qa_utils.create_unit_test_collection(unit=self.u2) qa_utils.create_unit_test_collection(unit=self.u3) qa_utils.create_unit_test_collection(unit=self.u3) qa_utils.create_unit_test_collection(unit=self.u3) st = sl_utils.create_service_type() sl_utils.create_service_event( unit_service_area=self.usa1, service_time=timezone.timedelta(minutes=60), service_type=st) sl_utils.create_service_event( unit_service_area=self.usa2, service_time=timezone.timedelta(minutes=60), service_type=st) sl_utils.create_service_event( unit_service_area=self.usa2, service_time=timezone.timedelta(minutes=60), problem_description='problem on unit 3 or 2', service_type=st) sl_utils.create_service_event( unit_service_area=self.usa3, service_time=timezone.timedelta(minutes=60), service_type=st) sl_utils.create_service_event( unit_service_area=self.usa3, problem_description='problem on unit 3 or 2', service_time=timezone.timedelta(minutes=60), service_type=st) sl_utils.create_service_event( unit_service_area=self.usa3, problem_description='problem on unit 3 or 2', service_time=timezone.timedelta(minutes=60), service_type=st)
def test_with_service_type(self): """If we filter for service type, the searcher should only return templates where the service_type is correct""" # one template with correct service type st1 = sl_utils.create_service_type() t1 = self.create_template("1", service_type=st1) # one template with incorrect service type st2 = sl_utils.create_service_type() self.create_template("2", service_type=st2) # one template with no service_type self.create_template("3") resp = self.client.get(self.url, data={ 'unit': self.unit.id, 'service_type': st1.pk }) data = resp.json() assert len(data) == 1 assert data[0]['id'] == t1.id
def setUp(self): self.factory = RequestFactory() self.view = views.UpdateServiceEvent.as_view() self.default_ses = sl_utils.create_service_event_status( is_default=True) self.approved_ses = sl_utils.create_service_event_status( is_review_required=False, rts_qa_must_be_reviewed=True) sl_utils.create_service_event_status() qa_utils.create_status(is_default=True) now = timezone.now() self.u_1 = qa_utils.create_unit(name='u_1') self.sa_1 = sl_utils.create_service_area(name='sa_1') self.usa_1 = sl_utils.create_unit_service_area(unit=self.u_1, service_area=self.sa_1) self.tl_1 = qa_utils.create_test_list(name='tl_1') self.tli_1_1 = qa_utils.create_test_list_instance( unit_test_collection=qa_utils.create_unit_test_collection( unit=self.u_1, test_collection=self.tl_1), test_list=self.tl_1, work_completed=now - timezone.timedelta(hours=1)) self.tli_1_2 = qa_utils.create_test_list_instance( unit_test_collection=qa_utils.create_unit_test_collection( unit=self.u_1, test_collection=self.tl_1), test_list=self.tl_1, work_completed=now) self.se_1 = sl_utils.create_service_event(unit_service_area=self.usa_1) self.u_2 = qa_utils.create_unit(name='u_2') self.sa_2 = sl_utils.create_service_area(name='sa_2') self.usa_2 = sl_utils.create_unit_service_area(unit=self.u_2, service_area=self.sa_2) self.tl_2 = qa_utils.create_test_list(name='tl_2') self.tli_2_1 = qa_utils.create_test_list_instance( unit_test_collection=qa_utils.create_unit_test_collection( unit=self.u_2, test_collection=self.tl_2), test_list=self.tl_2, work_completed=now - timezone.timedelta(hours=1)) self.tli_2_2 = qa_utils.create_test_list_instance( unit_test_collection=qa_utils.create_unit_test_collection( unit=self.u_2, test_collection=self.tl_2), test_list=self.tl_2, work_completed=now) self.se_2 = sl_utils.create_service_event(unit_service_area=self.usa_2) self.url = reverse('sl_new') self.user = create_user(is_superuser=True) self.client.login(username='******', password='******') perm = Permission.objects.get(codename='can_have_hours') user_can_hours = User.objects.get(username='******') user_can_hours.user_permissions.add(perm) user_group_has_hours = create_user(uname='in_group_with_hours') group_has_hours = create_group(name='can_have_hours') group_has_hours.permissions.add(perm) user_group_has_hours.groups.add(group_has_hours) sl_utils.create_third_party() group_linked = create_group(name='linked') user_group_linked = create_user(uname='user_in_group_linked') user_group_linked.groups.add(group_linked) self.gl_1 = sl_utils.create_group_linker(group=group_linked) self.part = sl_utils.create_part(add_storage=True) self.st = sl_utils.create_service_type() self.se = sl_utils.create_service_event( unit_service_area=self.usa_1, service_status=self.default_ses, service_type=self.st) self.url = reverse('sl_edit', kwargs={"pk": self.se.pk}) self.data = { 'datetime_service': format_datetime(timezone.now()), 'service_status': self.default_ses.id, 'service_type': self.st.id, 'is_review_required': 0, 'safety_precautions': 'safety_precautions', 'problem_description': 'problem_description', 'service_area_field': self.se.unit_service_area.service_area.id, 'unit_field': self.se.unit_service_area.unit.id, 'unit_field_fake': self.se.unit_service_area.unit.id, 'qafollowup_notes': 'qafollowup_notes', 'test_list_instance_initiated_by': self.tli_1_1.id, 'duration_lost_time': '0100', 'duration_service_time': '0100', 'hours-INITIAL_FORMS': 0, 'hours-MAX_NUM_FORMS': 1000, 'hours-TOTAL_FORMS': 0, 'hours-MIN_NUM_FORMS': 0, 'parts-INITIAL_FORMS': 0, 'parts-MAX_NUM_FORMS': 1000, 'parts-TOTAL_FORMS': 0, 'parts-MIN_NUM_FORMS': 0, 'rtsqa-INITIAL_FORMS': 0, 'rtsqa-MAX_NUM_FORMS': 1000, 'rtsqa-TOTAL_FORMS': 0, 'rtsqa-MIN_NUM_FORMS': 0, }
def test_submit_valid(self): st = sl_utils.create_service_type() user = User.objects.filter(groups=self.gl_1.group).first() user.user_permissions.add( Permission.objects.get(codename='can_have_hours')) data = { 'datetime_service': format_datetime(timezone.now()), 'unit_field': self.u_1.id, 'unit_field_fake': self.u_1.id, 'service_area_field': self.usa_1.service_area.id, 'service_type': st.id, 'problem_description': 'uhhhhh ohhhh', 'work_description': 'stuff was done', 'safety_precautions': 'we were careful', 'qafollowup_notes': 'comment', 'service_event_related_field': [sl_utils.create_service_event(unit_service_area=self.usa_1).id], 'service_status': models.ServiceEventStatus.get_default().id, 'test_list_instance_initiated_by': self.tli_1_1.id, 'duration_service_time': '4321', 'duration_lost_time': '1234', 'initiated_utc_field': self.tli_1_1.unit_test_collection.id, 'group_linker_1': user.id, 'hours-INITIAL_FORMS': 0, 'hours-MAX_NUM_FORMS': 1000, 'hours-TOTAL_FORMS': 1, 'hours-MIN_NUM_FORMS': 0, 'parts-INITIAL_FORMS': 0, 'parts-MAX_NUM_FORMS': 1000, 'parts-TOTAL_FORMS': 1, 'parts-MIN_NUM_FORMS': 0, 'rtsqa-INITIAL_FORMS': 0, 'rtsqa-MAX_NUM_FORMS': 1000, 'rtsqa-TOTAL_FORMS': 1, 'rtsqa-MIN_NUM_FORMS': 0, 'hours-0-time': '100', 'hours-0-user_or_thirdparty': 'user-%s' % user.id, 'rtsqa-0-all_reviewed': self.tli_1_2.all_reviewed, 'rtsqa-0-unit_test_collection': self.tli_1_2.unit_test_collection.id, 'rtsqa-0-test_list_instance': self.tli_1_2.id, 'parts-0-quantity': 1, 'parts-0-part': self.part.id, 'parts-0-from_storage': self.part.storage.all().first().id } se_count = models.ServiceEvent.objects.count() response = self.client.post(self.url, data=data) se_id = models.ServiceEvent.objects.filter( problem_description='uhhhhh ohhhh').first().id self.assertEqual(se_count + 1, models.ServiceEvent.objects.count()) self.assertEqual( 1, p_models.PartUsed.objects.filter(service_event=se_id).count()) self.assertEqual( 1, models.ReturnToServiceQA.objects.filter( service_event=se_id).count()) self.assertEqual( 1, models.Hours.objects.filter(service_event=se_id).count()) self.assertEqual(response.status_code, 302)
def setUp(self): self.factory = RequestFactory() self.view = views.CreateServiceEvent.as_view() self.default_ses = sl_utils.create_service_event_status( is_default=True) sl_utils.create_service_event_status() qa_utils.create_status(is_default=True) now = timezone.now() self.u_1 = qa_utils.create_unit(name='u_1') self.sa_1 = sl_utils.create_service_area(name='sa_1') self.usa_1 = sl_utils.create_unit_service_area(unit=self.u_1, service_area=self.sa_1) self.tl_1 = qa_utils.create_test_list(name='tl_1') self.tli_1_1 = qa_utils.create_test_list_instance( unit_test_collection=qa_utils.create_unit_test_collection( unit=self.u_1, test_collection=self.tl_1), test_list=self.tl_1, work_completed=now - timezone.timedelta(hours=1)) self.tli_1_2 = qa_utils.create_test_list_instance( unit_test_collection=qa_utils.create_unit_test_collection( unit=self.u_1, test_collection=self.tl_1), test_list=self.tl_1, work_completed=now) self.se_1 = sl_utils.create_service_event(unit_service_area=self.usa_1) self.u_2 = qa_utils.create_unit(name='u_2') self.sa_2 = sl_utils.create_service_area(name='sa_2') self.usa_2 = sl_utils.create_unit_service_area(unit=self.u_2, service_area=self.sa_2) self.tl_2 = qa_utils.create_test_list(name='tl_2') self.tli_2_1 = qa_utils.create_test_list_instance( unit_test_collection=qa_utils.create_unit_test_collection( unit=self.u_2, test_collection=self.tl_2), test_list=self.tl_2, work_completed=now - timezone.timedelta(hours=1)) self.tli_2_2 = qa_utils.create_test_list_instance( unit_test_collection=qa_utils.create_unit_test_collection( unit=self.u_2, test_collection=self.tl_2), test_list=self.tl_2, work_completed=now) self.se_2 = sl_utils.create_service_event(unit_service_area=self.usa_2) self.url = reverse('sl_new') self.url_delete = reverse('se_delete') self.user = create_user(is_superuser=True) self.client.login(username='******', password='******') perm = Permission.objects.get(codename='can_have_hours') user_can_hours = User.objects.get(username='******') user_can_hours.user_permissions.add(perm) user_group_has_hours = create_user(uname='in_group_with_hours') group_has_hours = create_group(name='can_have_hours') group_has_hours.permissions.add(perm) user_group_has_hours.groups.add(group_has_hours) sl_utils.create_third_party() group_linked = create_group(name='linked') user_group_linked = create_user(uname='user_in_group_linked') user_group_linked.groups.add(group_linked) self.gl_1 = sl_utils.create_group_linker(group=group_linked) self.part = sl_utils.create_part(add_storage=True) self.st = sl_utils.create_service_type() self.sto = sl_utils.create_storage(quantity=2)