def testRejectUser(self): new_user = TaoUser(username='******', email='*****@*****.**', first_name='fname', last_name='lname', is_active=False, institution='Intersect', scientific_interests='', title='Mr') new_user.set_password('password') new_user.save() self.assertEquals(2, len(TaoUser.objects.all())) self.assertFalse(new_user.is_active) self.assertFalse(new_user.rejected) self.assertTrue(self.client.login(username='******', password='******')) outbox = mail.outbox #@UndefinedVariable self.assertEqual(0, len(outbox)) reject_reason = 'Superman cannot use the system.' response = self.client.post("/administration/reject_user/%d" % new_user.id, {'reason':reject_reason}) self.assertEqual(1, len(outbox)) email_content = str(outbox[0].body) self.assertTrue(reject_reason in email_content) self.assertEqual(302, response.status_code) rejected_user = TaoUser.objects.get(pk=new_user.id) self.assertTrue(rejected_user.rejected) self.assertFalse(rejected_user.is_active)
def setUp(self): self.client = Client() super_user = TaoUser(username='******', email='*****@*****.**', first_name='super', last_name='man', is_active=True, is_staff=True) super_user.set_password('superman') super_user.save() GlobalParameterFactory(parameter_name='approve.html', parameter_value='') GlobalParameterFactory(parameter_name='approve.txt', parameter_value='') GlobalParameterFactory(parameter_name='registration.html', parameter_value='') GlobalParameterFactory(parameter_name='registration.txt', parameter_value='') GlobalParameterFactory(parameter_name='reject.html', parameter_value='{{ reason }}') GlobalParameterFactory(parameter_name='reject.txt', parameter_value='{{ reason }}') mail.outbox = []
def testApproveUser(self): new_user = TaoUser(username='******', email='*****@*****.**', first_name='fname', last_name='lname', is_active=False, institution='Intersect', scientific_interests='', title='Mr') new_user.set_password('password') new_user.save() self.assertEquals(2, len(TaoUser.objects.all())) self.assertFalse(new_user.is_active) self.assertTrue(self.client.login(username='******', password='******')) outbox = mail.outbox #@UndefinedVariable self.assertEqual(0, len(outbox)) response = self.client.post("/administration/approve_user/%d" % new_user.id) self.assertEqual(0, len(outbox)) self.assertEqual(302, response.status_code) self.assertTrue(TaoUser.objects.get(pk=new_user.id).is_active)
class JobTestCase(TestCase): def setUp(self): super(JobTestCase, self).setUp() GlobalParameterFactory(parameter_name='job-status.html', parameter_value='{{ job.id }} {{ user.username }}') GlobalParameterFactory(parameter_name='job-status.txt', parameter_value='{{ job.id }} {{ user.username }}') self.user = TaoUser() self.user.save() mail.outbox = [] def tearDown(self): super(JobTestCase, self).tearDown() def test_initial_job_status(self): GlobalParameterFactory(parameter_name='INITIAL_JOB_STATUS', parameter_value='SUBMITTED') job = Job(user=self.user) self.assertEquals('SUBMITTED', job.status) def test_files(self): output_path = 'job_dir' j = Job(user=self.user, status=Job.COMPLETED, output_path=output_path) j.save() dir_path = os.path.join(settings.FILES_BASE, output_path) if not os.path.exists(dir_path): os.makedirs(dir_path) output_path2 = 'job_dir/job_subdir' dir_path2 = os.path.join(settings.FILES_BASE, output_path2) if not os.path.exists(dir_path2): os.makedirs(dir_path2) file_names_to_contents = { 'file1': 'ksjhfewiu\n', 'filez2': 'faeowrfjieawmnc\n', 'file3': 'sdlkjfaeowijfiaowjef\n', } file_names_to_contents2 = { 'job_subdir/fileA': 'aaaaahhhhhhh', 'job_subdir/fileB': 'baaaaaaaahhhhhh', } from tao.tests import helper for file_name in file_names_to_contents.keys(): helper.create_file(dir_path, file_name, file_names_to_contents) for file_name in file_names_to_contents2.keys(): helper.create_file(dir_path, file_name, file_names_to_contents2) merged_file_names_to_contents = {} merged_file_names_to_contents.update(file_names_to_contents) merged_file_names_to_contents.update(file_names_to_contents2) self.assertEqual(sorted(merged_file_names_to_contents.keys()), sorted([job_file.file_name for job_file in j.files()])) def test_email_sent_only_when_completed(self): mail.outbox = [] job = Job(user=self.user, status=Job.IN_PROGRESS, output_path='job_dir') job.save() self.assertEqual(0, len(mail.outbox)) job.status = Job.COMPLETED job.save() self.assertEqual(1, len(mail.outbox)) self.assertEquals('[ASVO-TAO] Catalogue status update', mail.outbox[0].subject) mail_content = str(mail.outbox[0].body) self.assertTrue((str(job.id) in mail_content) and (self.user.username in mail_content))