def setUp(self): self.client = Client() self.secondary_category = ReportCategory.objects.all()[0] self.category = self.secondary_category.category_class self.organisation = OrganisationEntity.objects.get(pk=4) self.department = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=self.organisation, email="*****@*****.**" ) self.department.save() self.manager = FMSUser( is_active=True, telephone="0123456789", last_used_language="fr", password='******', first_name="manager", last_name="manager", email="*****@*****.**", manager=True ) self.manager.set_password('test') self.manager.organisation = self.organisation self.manager.save() self.department.dispatch_categories.add(self.secondary_category) self.usergroupmembership = UserOrganisationMembership(user=self.manager, organisation=self.department, contact_user=True) self.usergroupmembership.save() self.applicant_group = OrganisationEntity( type="A", name_nl="Belgacom", name_fr="Belgacom", phone="090987", email="*****@*****.**" ) self.applicant_group.save() self.applicant = FMSUser( is_active=True, telephone="0123456789", last_used_language="fr", password='******', first_name="manager", last_name="manager", email="*****@*****.**", manager=True ) self.applicant.set_password('test') self.applicant.save() self.applicantmembership = UserOrganisationMembership(user=self.applicant, organisation=self.applicant_group, contact_user=True) self.applicantmembership.save()
def setUp(self): self.secondary_category = ReportCategory.objects.all()[0] self.category = self.secondary_category.category_class #Create a FMSUser self.etterbeek = OrganisationEntity.objects.get(id=5) # postal code = 1040 Etterbeek self.etterbeek.save() self.bxl = OrganisationEntity.objects.get(id=4) # postal code = 1000 Bxl self.bxl.save() self.manager_etterbeek = FMSUser( is_active=True, email="*****@*****.**", telephone="0123456789", last_used_language="fr", manager=True, organisation=self.etterbeek) self.manager_etterbeek.save() self.manager_bxl = FMSUser( is_active=True, email="*****@*****.**", telephone="0123456789", last_used_language="fr", manager=True, organisation=self.bxl) self.manager_bxl.save() self.group = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=self.bxl, email="*****@*****.**" ) self.group.save() self.usergroupmembership = UserOrganisationMembership(user_id=self.manager_bxl.id, organisation_id=self.group.id, contact_user=True) self.usergroupmembership.save() self.group2 = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=self.etterbeek, email="*****@*****.**" ) self.group2.save() self.usergroupmembership2 = UserOrganisationMembership(user_id=self.manager_etterbeek.id, organisation_id=self.group2.id, contact_user=True) self.usergroupmembership2.save() self.citizen = FMSUser( email="*****@*****.**", telephone="0123456789", last_used_language="fr") self.citizen.save()
def setUp(self): self.bxl = OrganisationEntity.objects.get(id=4) self.manager_bxl = FMSUser( is_active=True, email="*****@*****.**", telephone="0123456789", last_used_language="fr", manager=True, organisation=self.bxl) self.manager_bxl.set_password('test') self.manager_bxl.save() self.group = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=self.bxl, email="*****@*****.**" ) self.group.save() self.usergroupmembership = UserOrganisationMembership(user_id=self.manager_bxl.id, organisation_id=self.group.id, contact_user=True) self.usergroupmembership.save() self.citizen = FMSUser(email="*****@*****.**", telephone="0123456789", last_used_language="fr") self.citizen.save() self.secondary_category = ReportCategory.objects.all()[0] self.category = self.secondary_category.category_class self.client.login(username=self.manager_bxl.email, password='******') self.report = Report( status=Report.CREATED, secondary_category=self.secondary_category, category=self.category, description='Just a test', postalcode=1000, address='my address', point=dict_to_point({"x": '149776', "y": '170005'}), address_number='6h', created_by=self.manager_bxl ) self.report.save() self.report.attachments.add(ReportComment( text='test comment 1', security_level=ReportComment.PRIVATE )) self.client.logout() self.report.attachments.add(ReportComment( text='test comment 2', security_level=ReportComment.PUBLIC )) self.report.attachments.add(ReportComment( text='test comment 3', logical_deleted=True, security_level=ReportComment.PUBLIC )) self.client = Client()
def setUp(self): try: organisation = OrganisationEntity.objects.get(id=1) except ObjectDoesNotExist: organisation = OrganisationEntity(id=1, name="Test organisation") organisation.save() p1 = (148776, 171005) p2 = (150776, 171005) p3 = (150776, 169005) p4 = (148776, 169005) surface = OrganisationEntitySurface( geom=Polygon([p1, p2, p3, p4, p1]), owner=OrganisationEntity.objects.get(pk=14) ) surface.save() #user_auth = User.objects.create_user(username='******', email='*****@*****.**', password='******') #user_auth.save() user = FMSUser( is_active=True, password="******", first_name="zaza", telephone="00000000", last_used_language="fr", organisation=organisation, username='******') user.save() #~ main_category = ReportMainCategoryClass(id=2,name_en='test main en',name_nl='test main nl',name_fr='test main fr') #~ main_category.save() #~ #~ secondary_category = ReportSecondaryCategoryClass(id=2,name_en='test second en',name_nl='test second nl',name_fr='test second fr') #~ secondary_category.save() #~ #~ category = ReportCategory(id=2,name_en='test parent en',name_nl='test parent nl',name_fr='test parent fr', public=True, category_class=main_category, secondary_category_class=secondary_category) #~ category.save() self.citizen = FMSUser( telephone="0123456789", last_used_language="fr", first_name="citizen", last_name="citizen", email="*****@*****.**" ) self.citizen.save() self.manager = FMSUser( is_active=True, telephone="0123456789", last_used_language="fr", password='******', first_name="manager", last_name="manager", email="*****@*****.**", manager=True ) self.manager.set_password('test') self.manager.organisation = OrganisationEntity.objects.get(pk=14) self.manager.save() self.group = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=OrganisationEntity.objects.get(pk=14), email="*****@*****.**" ) self.group.save() self.group_mail_config = GroupMailConfig() self.group_mail_config.group = self.group self.group_mail_config.save() self.usergroupmembership = UserOrganisationMembership(user_id=self.manager.id, organisation_id=self.group.id, contact_user=True) self.usergroupmembership.save() self.sample_post = { 'report-x': '150056.538', 'report-y': '170907.56', 'report-address_fr': 'Avenue des Arts, 3', 'report-address_nl': 'Kunstlaan, 3', 'report-address_number': '3', 'report-postalcode': '1210', 'report-category': '1', 'report-secondary_category': '1', 'report-subscription': 'on', 'report-terms_of_use_validated': True, 'comment-text': 'test', 'files-TOTAL_FORMS': 0, 'files-INITIAL_FORMS': 0, 'files-MAX_NUM_FORMS': 1000, 'citizen-quality': '1', 'citizen-email': self.citizen.email, 'citizen-firstname': self.citizen.first_name, 'citizen-lastname': self.citizen.last_name } """
class ApiTest(FMSTestCase): def setUp(self): try: organisation = OrganisationEntity.objects.get(id=1) except ObjectDoesNotExist: organisation = OrganisationEntity(id=1, name="Test organisation") organisation.save() p1 = (148776, 171005) p2 = (150776, 171005) p3 = (150776, 169005) p4 = (148776, 169005) surface = OrganisationEntitySurface( geom=Polygon([p1, p2, p3, p4, p1]), owner=OrganisationEntity.objects.get(pk=14) ) surface.save() #user_auth = User.objects.create_user(username='******', email='*****@*****.**', password='******') #user_auth.save() user = FMSUser( is_active=True, password="******", first_name="zaza", telephone="00000000", last_used_language="fr", organisation=organisation, username='******') user.save() #~ main_category = ReportMainCategoryClass(id=2,name_en='test main en',name_nl='test main nl',name_fr='test main fr') #~ main_category.save() #~ #~ secondary_category = ReportSecondaryCategoryClass(id=2,name_en='test second en',name_nl='test second nl',name_fr='test second fr') #~ secondary_category.save() #~ #~ category = ReportCategory(id=2,name_en='test parent en',name_nl='test parent nl',name_fr='test parent fr', public=True, category_class=main_category, secondary_category_class=secondary_category) #~ category.save() self.citizen = FMSUser( telephone="0123456789", last_used_language="fr", first_name="citizen", last_name="citizen", email="*****@*****.**" ) self.citizen.save() self.manager = FMSUser( is_active=True, telephone="0123456789", last_used_language="fr", password='******', first_name="manager", last_name="manager", email="*****@*****.**", manager=True ) self.manager.set_password('test') self.manager.organisation = OrganisationEntity.objects.get(pk=14) self.manager.save() self.group = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=OrganisationEntity.objects.get(pk=14), email="*****@*****.**" ) self.group.save() self.group_mail_config = GroupMailConfig() self.group_mail_config.group = self.group self.group_mail_config.save() self.usergroupmembership = UserOrganisationMembership(user_id=self.manager.id, organisation_id=self.group.id, contact_user=True) self.usergroupmembership.save() self.sample_post = { 'report-x': '150056.538', 'report-y': '170907.56', 'report-address_fr': 'Avenue des Arts, 3', 'report-address_nl': 'Kunstlaan, 3', 'report-address_number': '3', 'report-postalcode': '1210', 'report-category': '1', 'report-secondary_category': '1', 'report-subscription': 'on', 'report-terms_of_use_validated': True, 'comment-text': 'test', 'files-TOTAL_FORMS': 0, 'files-INITIAL_FORMS': 0, 'files-MAX_NUM_FORMS': 1000, 'citizen-quality': '1', 'citizen-email': self.citizen.email, 'citizen-firstname': self.citizen.first_name, 'citizen-lastname': self.citizen.last_name } """ self.steven = self.users['100003558692539'] params = { 'client_id': settings.FACEBOOK_APP_ID, 'client_secret': settings.FACEBOOK_API_SECRET, 'grant_type': 'client_credentials' } url='https://graph.facebook.com/oauth/access_token?{0}'.format(urlencode(params)) request = Request(url) try: response = urlparse.parse_qs(urlopen(request).read()) self.app_access_token = response['access_token'][0] #print settings.FACEBOOK_APP_ID,self.app_access_token except HTTPError as e: print e.code print simplejson.loads(e.read())['error']['message'] raise e url = 'https://graph.facebook.com/{0}/accounts/test-users?access_token={1}'\ .format(settings.FACEBOOK_APP_ID,self.app_access_token) try: response = simplejson.loads(urlopen(url).read()) for user in response['data']: if user['id'] not in self.users: self.users[user['id']] = {} self.users[user['id']]['access_token'] = user['access_token'] # print self.users except HTTPError as e: print e.code print simplejson.loads(e.read())['error']['message'] raise e """ def testCreateReportCitizen(self): #Create a client to launch requests client = Client() #Get the request response response = client.post(reverse('create_report_citizen'), self.sample_post, follow=True) #Test the http response code (200 = OK) self.assertEqual(response.status_code, 200) #Test if the response if JSON structured. self.assertEqual(response['Content-Type'], 'application/json; charset=utf-8') self.assertEqual(1, len(Report.objects.all())) #Load the response data as JSON object result = simplejson.loads(response.content) # Get in the DB the created report report = Report.objects.get(id=result['id']) # Check that source is correct self.assertEqual(Report.SOURCES['MOBILE'], report.source) def testCreateReportDoubleCitizen(self): #Parameters to save the report in database. #Create a client to launch requests client = Client() #Get the request response response = client.post(reverse('create_report_citizen'), self.sample_post, follow=True) response = client.post(reverse('create_report_citizen'), self.sample_post, follow=True) response = client.post(reverse('create_report_citizen'), self.sample_post, follow=True) response = client.post(reverse('create_report_citizen'), self.sample_post, follow=True) self.assertEqual(1, len(Report.objects.all())) #Load the response data as JSON object result = simplejson.loads(response.content) def testCreateReportPro(self): self.sample_post['username'] = self.manager.username self.sample_post['password'] = '******' #Create a client to launch requests client = Client() #Get the request response response = client.post('/fr/api/login/', { 'username': self.manager.username, 'password': '******' }, follow=True) self.assertEqual(response.status_code, 200) #Load the response data as JSON object result = simplejson.loads(response.content) self.assertIn('email', result) response = client.post(reverse('create_report_citizen'), self.sample_post, follow=True) #Test the http response code (200 = OK) self.assertEqual(response.status_code, 200) #Test if the response if JSON structured. self.assertEqual(response['Content-Type'], 'application/json; charset=utf-8') #Load the response data as JSON object result = simplejson.loads(response.content) #Verify if the report_id is returned by the webservice self.assertTrue(result['id']) #Get in the DB the created report report = Report.objects.get(id=result['id']) #Verify the persisted data for the new created report self.assertEquals(report.address, self.sample_post['report-address_fr']) self.assertTrue(report.is_pro()) # Check that source is correct self.assertEqual(Report.SOURCES['MOBILE'], report.source) def testCreateReportDoublePro(self): self.sample_post['username'] = self.manager.username self.sample_post['password'] = '******' #Create a client to launch requests client = Client() #Get the request response client.post(reverse('create_report_citizen'), self.sample_post, follow=True) client.post(reverse('create_report_citizen'), self.sample_post, follow=True) client.post(reverse('create_report_citizen'), self.sample_post, follow=True) client.post(reverse('create_report_citizen'), self.sample_post, follow=True) self.assertEqual(1, len(Report.objects.all())) def testLoadCategories(self): #Parameters to save the report in database. params = { "user_name": "superuser" } #Create a client to launch requests client = Client() #Get the request response response = client.get(reverse('load_categories'), params, follow=True) #Test the http response code (200 = OK) self.assertEqual(response.status_code, 200) #Test if the response if JSON structured. self.assertEqual(response['Content-Type'], 'application/json') #Load the response data as JSON object result = simplejson.loads(response.content) """ def testLoadReports(self): client = Client() response = client.get(reverse('api_reports'), {'x':1000,'y':1000}, follow=True) self.assertEqual(response.status_code, 200) result = simplejson.loads(response.content) self.assertEquals(result['status'], 'success') self.assertEquals(len(result['results']), 13) # sample contains 14 reports but 1 is fixed """ def test_login_user(self): params = { 'username': self.manager.email, 'password': '******' } response = self.client.post(reverse('login_user'), params) self.assertEqual(response.status_code, 200) result = simplejson.loads(response.content) self.assertEqual(result['id'], self.manager.id) self.assertEqual(result['first_name'], self.manager.first_name) def test_login_user_fail(self): params = { 'username': self.manager.email, 'password': '******' } response = self.client.post(reverse('login_user'), params) self.assertEqual(response.status_code, 403) result = simplejson.loads(response.content) self.assertEqual("ERROR_LOGIN_INVALID_PARAMETERS", result["error_key"]) def test_login_user_fail_empty_field(self): params = { 'username': self.manager.email } response = self.client.post(reverse('login_user'), params) self.assertEqual(response.status_code, 400) result = simplejson.loads(response.content) self.assertEqual("ERROR_LOGIN_INVALID_PARAMETERS", result["error_key"]) def test_login_user_bad_username(self): params = { 'username': "******", 'password': "******" } response = self.client.post(reverse('login_user'), params) self.assertEqual(response.status_code, 403) result = simplejson.loads(response.content) self.assertEqual("ERROR_LOGIN_INVALID_PARAMETERS", result["error_key"]) def test_logout_user(self): response = self.client.post(reverse('logout_user')) self.assertEqual(response.status_code, 200) self.assertEqual('', response.content)
def setUp(self): self.secondary_category = ReportCategory.objects.all()[0] self.category = self.secondary_category.category_class self.bxl = OrganisationEntity.objects.get(id=4) # postal code = 1000 Bxl self.bxl.save() p1 = (148776, 171005) p2 = (150776, 171005) p3 = (150776, 169005) p4 = (148776, 169005) surface = OrganisationEntitySurface( geom=Polygon([p1, p2, p3, p4, p1]), owner=self.bxl, ) surface.save() self.group = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=self.bxl, email="*****@*****.**" ) self.group.save() self.group_mail_config = GroupMailConfig() self.group_mail_config.group = self.group self.group_mail_config.save() self.agent = FMSUser( is_active=True, email="*****@*****.**", telephone="0123456789", last_used_language="fr", agent=True, organisation=self.bxl) self.agent.save() self.stib = OrganisationEntity.objects.get(id=21) self.stib.dependency = self.bxl self.stib.save() self.contractor = FMSUser( is_active=True, email="*****@*****.**", telephone="0123456789", last_used_language="fr", contractor=True, organisation=self.bxl) self.contractor.save() self.contractor_manager = FMSUser( is_active=True, email="*****@*****.**", telephone="90870870", last_used_language="fr", contractor=True, organisation=self.bxl, manager=True ) self.contractor_manager.save() uom = UserOrganisationMembership(user=self.contractor_manager, organisation=self.group) uom.save() self.entity_manager = FMSUser( is_active=True, email="*****@*****.**", telephone="90870870", last_used_language="fr", leader=True, organisation=self.bxl, manager=True ) self.entity_manager.save() self.usergroupmembership = UserOrganisationMembership(user_id = self.entity_manager.id, organisation_id = self.group.id) self.usergroupmembership.save() self.manager = FMSUser( is_active=True, email="*****@*****.**", telephone="0123456789", last_used_language="fr", manager=True, organisation=self.bxl ) self.manager.save() self.usergroupmembership2 = UserOrganisationMembership(user_id = self.manager.id, organisation_id = self.group.id, contact_user = True) self.usergroupmembership2.save() self.citizen = FMSUser( email="*****@*****.**", telephone="0123456789", last_used_language="fr" ) self.citizen.save()
class ListTest(FMSTestCase): def setUp(self): self.secondary_category = ReportCategory.objects.all()[0] self.category = self.secondary_category.category_class self.bxl = OrganisationEntity.objects.get(id=4) # postal code = 1000 Bxl self.bxl.save() p1 = (148776, 171005) p2 = (150776, 171005) p3 = (150776, 169005) p4 = (148776, 169005) surface = OrganisationEntitySurface( geom=Polygon([p1, p2, p3, p4, p1]), owner=self.bxl, ) surface.save() self.group = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=self.bxl, email="*****@*****.**" ) self.group.save() self.group_mail_config = GroupMailConfig() self.group_mail_config.group = self.group self.group_mail_config.save() self.agent = FMSUser( is_active=True, email="*****@*****.**", telephone="0123456789", last_used_language="fr", agent=True, organisation=self.bxl) self.agent.save() self.stib = OrganisationEntity.objects.get(id=21) self.stib.dependency = self.bxl self.stib.save() self.contractor = FMSUser( is_active=True, email="*****@*****.**", telephone="0123456789", last_used_language="fr", contractor=True, organisation=self.bxl) self.contractor.save() self.contractor_manager = FMSUser( is_active=True, email="*****@*****.**", telephone="90870870", last_used_language="fr", contractor=True, organisation=self.bxl, manager=True ) self.contractor_manager.save() uom = UserOrganisationMembership(user=self.contractor_manager, organisation=self.group) uom.save() self.entity_manager = FMSUser( is_active=True, email="*****@*****.**", telephone="90870870", last_used_language="fr", leader=True, organisation=self.bxl, manager=True ) self.entity_manager.save() self.usergroupmembership = UserOrganisationMembership(user_id = self.entity_manager.id, organisation_id = self.group.id) self.usergroupmembership.save() self.manager = FMSUser( is_active=True, email="*****@*****.**", telephone="0123456789", last_used_language="fr", manager=True, organisation=self.bxl ) self.manager.save() self.usergroupmembership2 = UserOrganisationMembership(user_id = self.manager.id, organisation_id = self.group.id, contact_user = True) self.usergroupmembership2.save() self.citizen = FMSUser( email="*****@*****.**", telephone="0123456789", last_used_language="fr" ) self.citizen.save() def test_list_agent_reports(self): new_report = Report( status=Report.CREATED, secondary_category=self.secondary_category, category=self.category, description='Just a test', postalcode=1000, address='my address', point=dict_to_point({"x": '149776', "y": '170005'}), address_number='6h', citizen=self.citizen ) new_report.save() reports = Report.objects.all() # Agent has no report self.assertFalse(reports.responsible(self.agent)) def test_list_contractor_reports(self): new_report = Report( status=Report.CREATED, secondary_category=self.secondary_category, category=self.category, description='Just a test', postalcode=1000, address='my address', point=dict_to_point({"x": '149776', "y": '170005'}), address_number='6h', citizen=self.citizen ) new_report.contractor = self.bxl new_report.save() reports = Report.objects.all() # Contractor has reports self.assertTrue(reports.entity_responsible(self.contractor)) def test_list_contractor_manager_reports(self): new_report = Report( status=Report.CREATED, secondary_category=self.secondary_category, category=self.category, description='Just a test', postalcode=1000, address='my address', point=dict_to_point({"x": '149776', "y": '170005'}), address_number='6h', citizen=self.citizen ) new_report.contractor = self.stib new_report.responsible_department = self.group new_report.save() new_report2 = Report( status=Report.CREATED, secondary_category=self.secondary_category, category=self.category, description='Just a test', postalcode=1000, address='my address', point=dict_to_point({"x": '149776', "y": '170005.2'}), address_number='6', citizen=self.citizen ) new_report2.responsible_department = self.group new_report2.save() reports = Report.objects.all() # Entity of contractor has 2 reports self.assertEquals(2, len(reports.entity_responsible(self.contractor_manager))) #contractor is responsible for 2 reports (1 as manager, 1 as contractor) self.assertEquals(2, len(reports.responsible(self.contractor_manager))) def test_list_entity_manager_reports(self): new_report = Report( status=Report.CREATED, secondary_category=self.secondary_category, category=self.category, description='Just a test', postalcode=1000, address='my address', point=dict_to_point({"x": '149776', "y": '170005'}), address_number='6h', citizen=self.citizen ) new_report.responsible_department = self.group new_report.save() reports = Report.objects.all() self.assertEquals(1, len(reports.entity_responsible(self.entity_manager))) self.assertEquals(1, len(reports.responsible(self.entity_manager))) new_report.responsible_department = self.group new_report.save() reports = Report.objects.all() self.assertEquals(1, len(reports.responsible(self.entity_manager)))
class ExportPDFTest(SampleFilesTestCase): def setUp(self): self.bxl = OrganisationEntity.objects.get(id=4) self.manager_bxl = FMSUser( is_active=True, email="*****@*****.**", telephone="0123456789", last_used_language="fr", manager=True, organisation=self.bxl) self.manager_bxl.set_password('test') self.manager_bxl.save() self.group = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=self.bxl, email="*****@*****.**" ) self.group.save() self.usergroupmembership = UserOrganisationMembership(user_id=self.manager_bxl.id, organisation_id=self.group.id, contact_user=True) self.usergroupmembership.save() self.citizen = FMSUser(email="*****@*****.**", telephone="0123456789", last_used_language="fr") self.citizen.save() self.secondary_category = ReportCategory.objects.all()[0] self.category = self.secondary_category.category_class self.client.login(username=self.manager_bxl.email, password='******') self.report = Report( status=Report.CREATED, secondary_category=self.secondary_category, category=self.category, description='Just a test', postalcode=1000, address='my address', point=dict_to_point({"x": '149776', "y": '170005'}), address_number='6h', created_by=self.manager_bxl ) self.report.save() self.report.attachments.add(ReportComment( text='test comment 1', security_level=ReportComment.PRIVATE )) self.client.logout() self.report.attachments.add(ReportComment( text='test comment 2', security_level=ReportComment.PUBLIC )) self.report.attachments.add(ReportComment( text='test comment 3', logical_deleted=True, security_level=ReportComment.PUBLIC )) self.client = Client() def test_pdf_attachment(self): response = self.client.get(reverse('report_pdf', args=[self.report.id]) + '?output=html', follow=True) self.assertEqual(response.status_code, 200) self.assertIn('comments', response.context) self.assertEqual(len(response.context['comments']), 1) self.assertEqual(response.context['comments'][0].text, 'test comment 2') self.assertEqual(response.context['privacy'], 'public') def test_attachment_private(self): self.assertTrue(self.client.login(username=self.manager_bxl.email, password='******')) response = self.client.get(reverse('report_pdf_pro', args=[self.report.id]) + '?output=html', follow=True) self.assertEqual(response.status_code, 200) self.assertTrue(hasattr(response.context['request'], 'fmsuser')) self.assertIn('comments', response.context) self.assertEqual(len(response.context['comments']), 2) self.assertEqual(response.context['comments'][0].text, 'test comment 1') self.assertEqual(response.context['comments'][1].text, 'test comment 2') self.assertEqual(response.context['privacy'], 'private') def test_show_attachment(self): response = self.client.get(reverse('report_show', kwargs={'report_id': self.report.id, 'slug': ''}), follow=True) self.assertEqual(response.status_code, 200) self.assertNotContains(response, 'test comment 1') self.assertContains(response, 'test comment 2') self.assertNotContains(response, 'test comment 3') def test_show_attachment_private(self): self.assertTrue(self.client.login(username=self.manager_bxl.email, password='******')) response = self.client.get(reverse('report_show_pro', kwargs={'report_id': self.report.id, 'slug': ''}), follow=True) self.assertEqual(response.status_code, 200) self.assertContains(response, 'test comment 1') self.assertContains(response, 'test comment 2') self.assertNotContains(response, 'test comment 3')
def setUp(self): self.client = Client() self.secondary_category = ReportCategory.objects.all()[0] self.category = self.secondary_category.category_class self.organisation = OrganisationEntity.objects.get(pk=14) self.organisation2 = OrganisationEntity.objects.get(pk=15) self.group = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=self.organisation, email="*****@*****.**" ) self.group.save() self.group_mail_config = GroupMailConfig() self.group_mail_config.group = self.group self.group_mail_config.save() self.group2 = OrganisationEntity( type="D", name_nl="Werken2", name_fr="Travaux2", phone="090987", dependency=self.organisation2, email="*****@*****.**" ) self.group2.save() self.group_mail_config2 = GroupMailConfig() self.group_mail_config2.group = self.group2 self.group_mail_config2.save() self.manager = FMSUser( is_active=True, telephone="0123456789", last_used_language="fr", password='******', first_name="manager", last_name="manager", email="*****@*****.**", manager=True ) self.manager.set_password('test') self.manager.organisation = self.organisation self.manager.save() self.manager2 = FMSUser( is_active=True, telephone="0123456789", last_used_language="fr", password='******', first_name="manager2", last_name="manager2", email="*****@*****.**", manager=True ) self.manager2.set_password('test') self.manager2.organisation = self.organisation self.manager2.save() self.usergroupmembership = UserOrganisationMembership(user_id=self.manager.id, organisation_id=self.group.id, contact_user=True) self.usergroupmembership.save() self.usergroupmembership = UserOrganisationMembership(user_id=self.manager2.id, organisation_id=self.group2.id, contact_user=True) self.usergroupmembership.save() self.report = Report( status=Report.CREATED, secondary_category=self.secondary_category, category=self.category, description='Just a test', postalcode=1000, address='my address', point=dict_to_point({"x": '149776', "y": '170005'}), address_number='6h', created_by=self.manager, accepted_at=datetime.now() ) self.report.save()
class UpdatesTest(FMSTestCase): def setUp(self): self.client = Client() self.secondary_category = ReportCategory.objects.all()[0] self.category = self.secondary_category.category_class self.organisation = OrganisationEntity.objects.get(pk=14) self.organisation2 = OrganisationEntity.objects.get(pk=15) self.group = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=self.organisation, email="*****@*****.**" ) self.group.save() self.group_mail_config = GroupMailConfig() self.group_mail_config.group = self.group self.group_mail_config.save() self.group2 = OrganisationEntity( type="D", name_nl="Werken2", name_fr="Travaux2", phone="090987", dependency=self.organisation2, email="*****@*****.**" ) self.group2.save() self.group_mail_config2 = GroupMailConfig() self.group_mail_config2.group = self.group2 self.group_mail_config2.save() self.manager = FMSUser( is_active=True, telephone="0123456789", last_used_language="fr", password='******', first_name="manager", last_name="manager", email="*****@*****.**", manager=True ) self.manager.set_password('test') self.manager.organisation = self.organisation self.manager.save() self.manager2 = FMSUser( is_active=True, telephone="0123456789", last_used_language="fr", password='******', first_name="manager2", last_name="manager2", email="*****@*****.**", manager=True ) self.manager2.set_password('test') self.manager2.organisation = self.organisation self.manager2.save() self.usergroupmembership = UserOrganisationMembership(user_id=self.manager.id, organisation_id=self.group.id, contact_user=True) self.usergroupmembership.save() self.usergroupmembership = UserOrganisationMembership(user_id=self.manager2.id, organisation_id=self.group2.id, contact_user=True) self.usergroupmembership.save() self.report = Report( status=Report.CREATED, secondary_category=self.secondary_category, category=self.category, description='Just a test', postalcode=1000, address='my address', point=dict_to_point({"x": '149776', "y": '170005'}), address_number='6h', created_by=self.manager, accepted_at=datetime.now() ) self.report.save() def test_change_manager(self): """Tests manager change assigned to a report and test the view of it.""" report = self.report report.responsible_department = self.group report.save() self.client.login(username='******', password='******') """Change manager department""" url = reverse('report_change_manager_pro', args=[report.id]) response = self.client.get("{0}?manId=department_{1}".format(url, self.group2.id), follow=True) self.assertEqual(response.status_code, 200) self.assertIsNotNone(report.responsible_department) """Change manager entity""" url = reverse('report_change_manager_pro', args=[report.id]) response = self.client.get(url+'?manId=entity_14', follow=True) self.assertEqual(response.status_code, 200) self.assertIsNotNone(report.responsible_department) def test_update_planned(self): self.client.login(username='******', password='******') date_planned = (datetime.now() + timedelta(days=1)).strftime("%m/%Y") url = '%s?date_planned=%s' % (reverse('report_planned_pro', args=[self.report.id]), date_planned) # Set as planned self.client.login(username='******', password='******') response = self.client.get(url, follow=True) report = response.context['report'] self.assertTrue(report.is_planned()) self.assertTrue(report.date_planned) def test_update_planned_max_date(self): self.client.login(username='******', password='******') max_date_planned = self.report.accepted_at + timedelta(days=450) url = '%s?date_planned=%s' % (reverse('report_planned_pro', args=[self.report.id]), max_date_planned.strftime("%m/%Y")) # Set as planned self.client.login(username='******', password='******') response = self.client.get(url, follow=True) report = response.context['report'] self.assertFalse(report.is_planned()) self.assertFalse(report.date_planned) def test_update_planned_min_date(self): self.client.login(username='******', password='******') min_date_planned = self.report.accepted_at - timedelta(days=366) url = '%s?date_planned=%s' % (reverse('report_planned_pro', args=[self.report.id]), min_date_planned.strftime("%m/%Y")) # Set as planned self.client.login(username='******', password='******') response = self.client.get(url, follow=True) report = response.context['report'] self.assertFalse(report.is_planned()) self.assertFalse(report.date_planned) def test_update_planned_not_accepted(self): self.client.login(username='******', password='******') self.report.accepted_at = None self.report.save() date_planned = (datetime.now() + timedelta(days=1)).strftime("%m/%Y") url = '%s?date_planned=%s' % (reverse('report_planned_pro', args=[self.report.id]), date_planned) # Set as planned self.client.login(username='******', password='******') response = self.client.get(url, follow=True) report = response.context['report'] self.assertFalse(report.is_planned()) self.assertFalse(report.date_planned) def test_update_planned_no_date_planned(self): self.client.login(username='******', password='******') self.report.accepted_at = None self.report.save() url = reverse('report_planned_pro', args=[self.report.id]) # Set as planned self.client.login(username='******', password='******') response = self.client.get(url, follow=True) report = response.context['report'] self.assertFalse(report.is_planned()) self.assertFalse(report.date_planned) def test_update_planned_change(self): self.client.login(username='******', password='******') first_date_planned = datetime.now() self.report.date_planned = first_date_planned self.report.save() date_planned = datetime.now() + timedelta(days=1) url = '%s?date_planned=%s' % (reverse('report_planned_pro', args=[self.report.id]), date_planned.strftime("%m/%Y")) # Set as planned self.client.login(username='******', password='******') response = self.client.get(url, follow=True) report = response.context['report'] self.assertTrue(report.is_planned()) self.assertEqual(date_planned.strftime("%m/%Y"), report.date_planned.strftime("%m/%Y")) self.assertNotEqual(first_date_planned, report.date_planned) def test_update_planned_unauth(self): url = reverse('report_planned_pro', args=[self.report.id]) # Set as planned without auth raise an error by accessing report in context response = self.client.get(url, follow=True) self.assertRaises(KeyError, lambda: response.context['report']) def test_update_priority(self): #Test default value of priority set to 1 new_report = Report( status=Report.CREATED, secondary_category=self.secondary_category, category=self.category, description='Just a test', postalcode=1000, address='my address', point=dict_to_point({"x": '149776', "y": '170005'}), address_number='6h', created_by=self.manager ) new_report.save() self.assertEquals(new_report.gravity, 0) self.assertEquals(new_report.probability, 0) self.assertEquals(new_report.get_priority(), 0) self.client.login(username='******', password='******') #Test update report priority self.client.get( reverse("report_update_priority", args=[new_report.id]), { 'gravity': '2', 'probability': '4' }) updated_report = Report.objects.get(id=new_report.id) self.assertEquals(updated_report.gravity, 2) self.assertEquals(updated_report.probability, 4) self.assertEquals(updated_report.get_priority(), 8) @skip("no more available") def test_previous_reports(self): self.client.login(username='******', password='******') manager2 = FMSUser( telephone="0123456789", last_used_language="fr", password='******', first_name="manager2", last_name="manager2", email="*****@*****.**", manager=True ) manager2.set_password('test') manager2.organisation = self.organisation manager2.save() managerId = "manager_%s" % (manager2.id) self.client.post(reverse("report_change_manager_pro", args=[self.report.id])+"?manId="+managerId) self.assertEquals(len(self.manager.previous_reports.all()), 1) self.assertEquals(self.manager.previous_reports.all()[0].id, self.report.id) self.assertEquals(len(self.manager.reports_in_charge.all()), 0) def test_update_visibility(self): #Test switch to public and back self.client.login(username='******', password='******') self.client.get( reverse("report_change_switch_privacy", args=[self.report.id]), {"privacy": "true"}) self.assertTrue(Report.objects.get(id=self.report.id).private) self.client.get( reverse("report_change_switch_privacy", args=[self.report.id]), {"privacy": "false"}) self.assertFalse(self.report.private) #Test constraint: cannot turn report public if category is private #Turn report private self.client.get(reverse("report_change_switch_privacy", args=[self.report.id])+"?privacy=true") #Change category to private one report = Report.objects.get(id=self.report.id) report.secondary_category = ReportCategory.objects.get(id=4) report.save() #Try to set report to public self.client.get(reverse("report_change_switch_privacy", args=[self.report.id])+"?privacy=false") #Report not set to public because private category self.assertTrue(Report.objects.get(id=self.report.id).private) def test_false_address(self): self.client.login(username='******', password='******') url = reverse("report_false_address", args=[self.report.id]) post_data = {'false_address': 'This is a false address'} response = self.client.post(url, post_data, follow=True) report = Report.objects.get(id=self.report.id) self.assertEquals(response.status_code, 200) self.assertEqual(report.false_address, post_data['false_address']) post_data = {'false_address': 'Another false address'} response = self.client.post(url, post_data, follow=True) report = Report.objects.get(id=self.report.id) self.assertEquals(response.status_code, 200) self.assertEqual(report.false_address, post_data['false_address'])
def setUp(self): self.client = Client() self.secondary_category = ReportCategory.objects.all()[0] self.category = self.secondary_category.category_class self.organisation = OrganisationEntity.objects.get(pk=4) self.department = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=self.organisation, email="*****@*****.**" ) self.department.save() self.group_mail_config = GroupMailConfig() self.group_mail_config.group = self.department self.group_mail_config.save() p1 = (148776, 171005) p2 = (150776, 171005) p3 = (150776, 169005) p4 = (148776, 169005) surface = OrganisationEntitySurface( geom=Polygon([p1, p2, p3, p4, p1]), owner=self.organisation, ) surface.save() self.manager = FMSUser( is_active=True, telephone="0123456789", last_used_language="fr", password='******', first_name="manager", last_name="manager", email="*****@*****.**", manager=True ) self.manager.set_password('test') self.manager.organisation = self.organisation self.manager.save() self.department.dispatch_categories.add(self.secondary_category) self.usergroupmembership = UserOrganisationMembership(user=self.manager, organisation=self.department, contact_user=True) self.usergroupmembership.save() self.applicant_group = OrganisationEntity( type="A", name_nl="Belgacom", name_fr="Belgacom", phone="090987", email="*****@*****.**" ) self.applicant_group.save() self.applicant = FMSUser( is_active=True, telephone="0123456789", last_used_language="fr", password='******', first_name="manager", last_name="manager", email="*****@*****.**", manager=True ) self.applicant.set_password('test') self.applicant.save() self.applicantmembership = UserOrganisationMembership(user=self.applicant, organisation=self.applicant_group, contact_user=True) self.applicantmembership.save()
class DispatchingTest(FMSTestCase): def setUp(self): self.client = Client() self.secondary_category = ReportCategory.objects.all()[0] self.category = self.secondary_category.category_class self.organisation = OrganisationEntity.objects.get(pk=4) self.department = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=self.organisation, email="*****@*****.**" ) self.department.save() self.group_mail_config = GroupMailConfig() self.group_mail_config.group = self.department self.group_mail_config.save() p1 = (148776, 171005) p2 = (150776, 171005) p3 = (150776, 169005) p4 = (148776, 169005) surface = OrganisationEntitySurface( geom=Polygon([p1, p2, p3, p4, p1]), owner=self.organisation, ) surface.save() self.manager = FMSUser( is_active=True, telephone="0123456789", last_used_language="fr", password='******', first_name="manager", last_name="manager", email="*****@*****.**", manager=True ) self.manager.set_password('test') self.manager.organisation = self.organisation self.manager.save() self.department.dispatch_categories.add(self.secondary_category) self.usergroupmembership = UserOrganisationMembership(user=self.manager, organisation=self.department, contact_user=True) self.usergroupmembership.save() self.applicant_group = OrganisationEntity( type="A", name_nl="Belgacom", name_fr="Belgacom", phone="090987", email="*****@*****.**" ) self.applicant_group.save() self.applicant = FMSUser( is_active=True, telephone="0123456789", last_used_language="fr", password='******', first_name="manager", last_name="manager", email="*****@*****.**", manager=True ) self.applicant.set_password('test') self.applicant.save() self.applicantmembership = UserOrganisationMembership(user=self.applicant, organisation=self.applicant_group, contact_user=True) self.applicantmembership.save() def test_dispatch_pro(self): """ when a report is created by a agent / manager / entity responsible entity is computed based on responsible entity from creator """ self.client.login(username='******', password='******') self.report = Report( status=Report.CREATED, secondary_category=self.secondary_category, category=self.category, description='Just a test', postalcode=1090, address='my address', point=dict_to_point({"x": '149776', "y": '170005'}), address_number='6h', created_by=self.manager, accepted_at=datetime.now() ) self.report.save() self.assertEquals(self.report.responsible_entity, self.organisation) self.assertEquals(self.report.responsible_department, self.department) def test_dispatch_applicant(self): """ when a report is created by a applicant / contractor responsible entity is computed based on geography """ self.client.login(username='******', password='******') self.report = Report( status=Report.CREATED, secondary_category=self.secondary_category, category=self.category, description='Just a test', postalcode=1000, address='my address', point=dict_to_point({"x": '149776', "y": '170005'}), address_number='6h', created_by=self.applicant, accepted_at=datetime.now() ) self.report.save() self.assertEquals(self.report.responsible_entity, self.organisation) self.assertEquals(self.report.responsible_department, self.department) def test_dispatch_citizen(self): self.report = Report( status=Report.CREATED, secondary_category=self.secondary_category, category=self.category, description='Just a test', postalcode=1000, address='my address', point=dict_to_point({"x": '149776', "y": '170005'}), address_number='6h', accepted_at=datetime.now() ) self.report.save() self.assertEquals(self.report.responsible_entity, self.organisation) self.assertEquals(self.report.responsible_department, self.department)
def setUp(self): self.secondary_category = ReportCategory.objects.all()[0] self.category = self.secondary_category.category_class #Create a FMSUser self.etterbeek = OrganisationEntity.objects.get(id=5) # postal code = 1040 Etterbeek self.etterbeek.save() self.bxl = OrganisationEntity.objects.get(id=4) # postal code = 1000 Bxl self.bxl.save() p1 = (148776, 171005) p2 = (150776, 171005) p3 = (150776, 170005) p4 = (148776, 170005) surface = OrganisationEntitySurface( geom=Polygon([p1, p2, p3, p4, p1]), owner=self.bxl ) surface.save() p1 = (148776, 170005) p2 = (150776, 170005) p3 = (150776, 169005) p4 = (148776, 169005) surface = OrganisationEntitySurface( geom=Polygon([p1, p2, p3, p4, p1]), owner=self.etterbeek ) surface.save() self.manager_etterbeek = FMSUser( is_active=True, email="*****@*****.**", telephone="0123456789", last_used_language="fr", manager=True, organisation=self.etterbeek) self.manager_etterbeek.save() self.manager_bxl = FMSUser( is_active=True, email="*****@*****.**", telephone="0123456789", last_used_language="fr", manager=True, organisation=self.bxl) self.manager_bxl.save() self.group = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=self.bxl, email="*****@*****.**" ) self.group.save() self.group_mail_config = GroupMailConfig() self.group_mail_config.group = self.group self.group_mail_config.save() self.usergroupmembership = UserOrganisationMembership(user_id=self.manager_bxl.id, organisation_id=self.group.id, contact_user=True) self.usergroupmembership.save() self.group2 = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=self.etterbeek, email="*****@*****.**" ) self.group2.save() self.group_mail_config2 = GroupMailConfig() self.group_mail_config2.group = self.group2 self.group_mail_config2.save() self.usergroupmembership2 = UserOrganisationMembership(user_id=self.manager_etterbeek.id, organisation_id=self.group2.id, contact_user=True) self.usergroupmembership2.save() self.citizen = FMSUser( email="*****@*****.**", telephone="0123456789", last_used_language="fr") self.citizen.save()
class NotificationTest(FMSTestCase): def setUp(self): self.secondary_category = ReportCategory.objects.all()[0] self.category = self.secondary_category.category_class #Create a FMSUser self.etterbeek = OrganisationEntity.objects.get(id=5) # postal code = 1040 Etterbeek self.etterbeek.save() self.bxl = OrganisationEntity.objects.get(id=4) # postal code = 1000 Bxl self.bxl.save() p1 = (148776, 171005) p2 = (150776, 171005) p3 = (150776, 170005) p4 = (148776, 170005) surface = OrganisationEntitySurface( geom=Polygon([p1, p2, p3, p4, p1]), owner=self.bxl ) surface.save() p1 = (148776, 170005) p2 = (150776, 170005) p3 = (150776, 169005) p4 = (148776, 169005) surface = OrganisationEntitySurface( geom=Polygon([p1, p2, p3, p4, p1]), owner=self.etterbeek ) surface.save() self.manager_etterbeek = FMSUser( is_active=True, email="*****@*****.**", telephone="0123456789", last_used_language="fr", manager=True, organisation=self.etterbeek) self.manager_etterbeek.save() self.manager_bxl = FMSUser( is_active=True, email="*****@*****.**", telephone="0123456789", last_used_language="fr", manager=True, organisation=self.bxl) self.manager_bxl.save() self.group = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=self.bxl, email="*****@*****.**" ) self.group.save() self.group_mail_config = GroupMailConfig() self.group_mail_config.group = self.group self.group_mail_config.save() self.usergroupmembership = UserOrganisationMembership(user_id=self.manager_bxl.id, organisation_id=self.group.id, contact_user=True) self.usergroupmembership.save() self.group2 = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=self.etterbeek, email="*****@*****.**" ) self.group2.save() self.group_mail_config2 = GroupMailConfig() self.group_mail_config2.group = self.group2 self.group_mail_config2.save() self.usergroupmembership2 = UserOrganisationMembership(user_id=self.manager_etterbeek.id, organisation_id=self.group2.id, contact_user=True) self.usergroupmembership2.save() self.citizen = FMSUser( email="*****@*****.**", telephone="0123456789", last_used_language="fr") self.citizen.save() def testReportFileType(self): new_report = Report(status=Report.CREATED, category=self.category, description='Just a test', postalcode=1000) reportFile = ReportFile(file_type=ReportFile.PDF, report=new_report) self.assertTrue(reportFile.is_pdf()) self.assertFalse(reportFile.is_word()) self.assertFalse(reportFile.is_excel()) self.assertFalse(reportFile.is_image()) self.assertTrue(reportFile.is_document()) reportFile = ReportFile(file_type=ReportFile.WORD, report=new_report) self.assertFalse(reportFile.is_pdf()) self.assertTrue(reportFile.is_word()) self.assertFalse(reportFile.is_excel()) self.assertFalse(reportFile.is_image()) self.assertTrue(reportFile.is_document()) reportFile = ReportFile(file_type=ReportFile.EXCEL, report=new_report) self.assertFalse(reportFile.is_pdf()) self.assertFalse(reportFile.is_word()) self.assertTrue(reportFile.is_excel()) self.assertFalse(reportFile.is_image()) self.assertTrue(reportFile.is_document()) reportFile = ReportFile(file_type=ReportFile.IMAGE, report=new_report) self.assertFalse(reportFile.is_pdf()) self.assertFalse(reportFile.is_word()) self.assertFalse(reportFile.is_excel()) self.assertTrue(reportFile.is_image()) self.assertFalse(reportFile.is_document()) def testReportResponsibleAssignment(self): '''Test the assignment of a responsible when creating a report''' new_report = Report( status=Report.CREATED, secondary_category=self.secondary_category, category=self.category, description='Just a test', postalcode=1000, address='my address', point=dict_to_point({"x": '149776', "y": '170105'}), address_number='6h', created_by=self.manager_etterbeek ) new_report.save() # when created by pro report is under responsibility of etterbeek, not bxl self.assertEquals(new_report.responsible_entity, self.etterbeek) new_report = Report( status=Report.CREATED, secondary_category=self.secondary_category, category=self.category, description='Just a test', postalcode=1000, address='my address', point=dict_to_point({"x": '149776', "y": '170105'}), address_number='6h', citizen=self.citizen ) new_report.save() # when created by citizen, postalcode used for resonsible self.assertEquals(new_report.responsible_entity, self.bxl)
class NotificationTest(TestCase): fixtures = ["bootstrap", "list_items"] def setUp(self): self.secondary_category = ReportCategory.objects.all()[0] self.category = self.secondary_category.category_class #Create a FMSUser self.etterbeek = OrganisationEntity.objects.get(id=5) # postal code = 1040 Etterbeek self.etterbeek.save() self.bxl = OrganisationEntity.objects.get(id=4) # postal code = 1000 Bxl self.bxl.save() self.manager_etterbeek = FMSUser( is_active=True, email="*****@*****.**", telephone="0123456789", last_used_language="fr", manager=True, organisation=self.etterbeek) self.manager_etterbeek.save() self.manager_bxl = FMSUser( is_active=True, email="*****@*****.**", telephone="0123456789", last_used_language="fr", manager=True, organisation=self.bxl) self.manager_bxl.save() self.group = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=self.bxl, email="*****@*****.**" ) self.group.save() self.usergroupmembership = UserOrganisationMembership(user_id=self.manager_bxl.id, organisation_id=self.group.id, contact_user=True) self.usergroupmembership.save() self.group2 = OrganisationEntity( type="D", name_nl="Werken", name_fr="Travaux", phone="090987", dependency=self.etterbeek, email="*****@*****.**" ) self.group2.save() self.usergroupmembership2 = UserOrganisationMembership(user_id=self.manager_etterbeek.id, organisation_id=self.group2.id, contact_user=True) self.usergroupmembership2.save() self.citizen = FMSUser( email="*****@*****.**", telephone="0123456789", last_used_language="fr") self.citizen.save() def testReportFileType(self): new_report = Report(status=Report.CREATED, category=self.category, description='Just a test', postalcode=1000, responsible_manager=self.manager_bxl) reportFile = ReportFile(file_type=ReportFile.PDF, report=new_report) self.assertTrue(reportFile.is_pdf()) self.assertFalse(reportFile.is_word()) self.assertFalse(reportFile.is_excel()) self.assertFalse(reportFile.is_image()) self.assertTrue(reportFile.is_document()) reportFile = ReportFile(file_type=ReportFile.WORD, report=new_report) self.assertFalse(reportFile.is_pdf()) self.assertTrue(reportFile.is_word()) self.assertFalse(reportFile.is_excel()) self.assertFalse(reportFile.is_image()) self.assertTrue(reportFile.is_document()) reportFile = ReportFile(file_type=ReportFile.EXCEL, report=new_report) self.assertFalse(reportFile.is_pdf()) self.assertFalse(reportFile.is_word()) self.assertTrue(reportFile.is_excel()) self.assertFalse(reportFile.is_image()) self.assertTrue(reportFile.is_document()) reportFile = ReportFile(file_type=ReportFile.IMAGE, report=new_report) self.assertFalse(reportFile.is_pdf()) self.assertFalse(reportFile.is_word()) self.assertFalse(reportFile.is_excel()) self.assertTrue(reportFile.is_image()) self.assertFalse(reportFile.is_document()) def testReportResponsibleAssignment(self): '''Test the assignment of a responsible when creating a report''' #When a responsible_manager is defined responsible_entity is not recomputed new_report = Report( status=Report.CREATED, secondary_category=self.secondary_category, category=self.category, description='Just a test', postalcode=1000, address='my address', point=dict_to_point({"x": '149776', "y": '170005'}), address_number='6h', created_by=self.manager_etterbeek ) new_report.save() # when created by pro report is under responsibility of etterbeek, not bxl self.assertEquals(new_report.responsible_entity, self.etterbeek) #self.assertEquals(new_report.responsible_manager, self.manager_etterbeek) new_report = Report( status=Report.CREATED, secondary_category=self.secondary_category, category=self.category, description='Just a test', postalcode=1000, address='my address', point=dict_to_point({"x": '149776', "y": '170005'}), address_number='6h', citizen=self.citizen ) new_report.save() # when created by citizen, postalcode used for resonsible self.assertEquals(new_report.responsible_entity, self.bxl)