def test_log_group_updated_added_event(self): """Check logging signal for newly created group""" # add own root handler to catch group signals output out = StringIO() handler = logging.StreamHandler(out) logging.root.addHandler(handler) # now create group, this should raise new message inside # our logger output file group = Group(title='Demo Group') group.save() # check output file content out.seek(0) self.assertEqual(out.readlines()[-1], "Group created: Demo Group (ID: %d)\n" % group.id) # now update existing student and check last line in out group.notes = 'some group note' group.save() out.seek(0) self.assertEqual(out.readlines()[-1], "Group updated: Demo Group (ID: %d)\n" % group.id) # remove our handler from root logger logging.root.removeHandler(handler)
def test_log_student_updated_added_event(self): ''' Check logging signal for newly created student ''' # add own root handler to catch student signals output out = StringIO() handler = logging.StreamHandler(out) logging.root.addHandler(handler) # now create student, this should raise new message inside # our logger output file student = Student(first_name='Demo', last_name='Student') student.save() # check output file content out.seek(0) self.assertEqual(out.readlines()[-1], 'Student added: Demo Student (ID: %d)\n' % student.id) # now update existing student and check last line in out student.ticket = '12345' student.save() out.seek(0) self.assertEqual( out.readlines()[-1], 'Student updated: Demo Student (ID: %d)\n' % student.id) # remove our handler from root logger logging.root.removeHandler(handler)
def test_log_student_updated_added_event(self): """Check logging signal for newly created student""" # add own root handler to catch student signals output out = StringIO() handler = logging.StreamHandler(out) logging.root.addHandler(handler) # now create student, this should raise new message inside # our logger output file student = Student(first_name='Demo', last_name='Student') student.save() # check output file content out.seek(0) self.assertEqual(out.readlines()[-1], 'Student added: Demo Student (ID: %d)\n' % student.id) # now update existing student and check last line in out student.ticket = '12345' student.save() out.seek(0) self.assertEqual(out.readlines()[-1], 'Student updated: Demo Student (ID: %d)\n' % student.id) # remove our handler from root logger logging.root.removeHandler(handler)
def _choices_as_array(self): from django.utils.six import StringIO valuebuffer = StringIO(self.list_values) choices = [[item.strip(), item.strip()] for item in valuebuffer.readlines()] valuebuffer.close() return choices
def test_filter_encrypted(self): stdout = StringIO() with patch('sys.stdout', stdout): execute_from_command_line(['', 'listbackups', '--encrypted', '-q']) stdout.seek(0) stdout.readline() for line in stdout.readlines(): self.assertIn('.gpg', line)
def test_filter_media(self): stdout = StringIO() with patch('sys.stdout', stdout): execute_from_command_line(['', 'listbackups', '--content-type', 'media', '-q']) stdout.seek(0) stdout.readline() for line in stdout.readlines(): self.assertIn('.tar', line)
def test_filter_not_compressed(self): stdout = StringIO() with patch('sys.stdout', stdout): execute_from_command_line(['', 'listbackups', '--not-compressed', '-q']) stdout.seek(0) stdout.readline() for line in stdout.readlines(): self.assertNotIn('.gz', line)
def test_filter_media(self): stdout = StringIO() with patch('sys.stdout', stdout): execute_from_command_line(['', 'listbackups', '--content-type', 'media', '-q']) stdout.seek(0) stdout.readline() for line in stdout.readlines(): self.assertIn('.media', line)
def test_compile_all(settings): out = StringIO() management.call_command('compilejsi18n', verbosity=1, stdout=out) out.seek(0) lines = [l.strip() for l in out.readlines()] assert len(lines) == len(settings.LANGUAGES) for locale, _ in settings.LANGUAGES: assert "processing language %s" % to_locale(locale) in lines
def test_log_student_updated_added_event(self): out = StringIO() handler = logging.StreamHandler(out) logging.root.addHandler(handler) student = Student(first_name='Demo', last_name='Student') student.save() out.seek(0) self.assertEqual(out.readlines()[-1], 'Student added: Demo Student (ID: %d)\n' % student.id) student.ticker = '12345' student.save() out.seek(0) self.assertEqual( out.readlines()[-1], 'Student updated: Demo Student (ID: %d)\n' % student.id) logging.root.removeHandler(handler)
class TestNamespacedCommand(TestCase): def setUp(self): super(TestNamespacedCommand, self).setUp() self.stdout = StringIO() self.stderr = StringIO() def test_help_message(self): cmd = DummyCommand(stdout=self.stdout, stderr=self.stderr, no_color=True) cmd.run_from_argv(["./manage.py", "dummy", "-h"]) self.stdout.seek(0) self.assertEqual( "\n".join([l.strip() for l in self.stdout.readlines()]), "\n".join([ "usage: manage.py dummy [-h] sub1", "", "positional arguments:", "sub1 subcommand", "", "optional arguments:", "-h, --help show this help message and exit", ]), ) def test_trigger_subcommand(self): cmd = DummyCommand(stdout=self.stdout, stderr=self.stderr, no_color=True) cmd.run_from_argv(["./manage.py", "dummy", "sub1"]) self.stdout.seek(0) self.assertEqual("".join([l.strip() for l in self.stdout.readlines()]), "subcommand triggered")
def test_compile_with_output_format(settings, locale, output_format): out = StringIO() management.call_command('compilejsi18n', verbosity=1, stdout=out, locale=locale, outputformat=output_format) out.seek(0) lines = [l.strip() for l in out.readlines()] assert len(lines) == 1 assert lines[0] == "processing language %s" % to_locale(locale) assert os.path.exists( os.path.join(settings.STATIC_ROOT, "jsi18n", locale, "djangojs.%s" % output_format))
class SignalsTests(TestCase): """Test for Student signals""" def setUp(self): self.out = StringIO() self.handler = logging.StreamHandler(self.out) logging.root.addHandler(self.handler) Student.objects.create(id=1, first_name='Test', last_name='Student') def test_updated_added_event(self): # check if add signal message is in the output file self.out.seek(0) student = Student.objects.get(pk=1) self.assertEqual( self.out.readlines()[-1], 'Student added: Test Student (ID: {:d})\n'.format(student.id)) # check if update signal message is in the output file student.ticket = '123' student.save() self.out.seek(0) self.assertEqual( self.out.readlines()[-1], 'Student updated: Test Student (ID: {:d})\n'.format(student.id)) def test_deleted_event(self): student = Student.objects.get(pk=1) pk = student.id student.delete() self.out.seek(0) self.assertEqual( self.out.readlines()[-1], 'Student deleted: Test Student (ID: {:d})\n'.format(pk)) def tearDown(self): # remove our handler from root logger logging.root.removeHandler(self.handler)
def test_log_group_updated_added_event(self): """Check logging group for newly created student""" # add own root handler to catch student signals output out = StringIO() handler = logging.StreamHandler(out) logging.root.addHandler(handler) # now create group, this should raise new message inside # our logger output file group = Group(title='Demo Group 1') group.save() # check output file content out.seek(0) self.assertEqual(out.readlines()[-1], 'Group Demo Group 1 added (ID: %d)\n' % group.id) # now update existing group and check last line in out group.title = 'Demo Group 2' group.save() out.seek(0) self.assertEqual(out.readlines()[-1], 'Group Demo Group 2 updated (ID: %d)\n' % group.id) # remove our handler from root logger logging.root.removeHandler(handler)
def test_compile_with_namespace(settings, locale, namespace): out = StringIO() management.call_command('compilejsi18n', verbosity=1, stdout=out, locale=locale, outputformat='js', namespace=namespace) out.seek(0) lines = [l.strip() for l in out.readlines()] assert len(lines) == 1 assert lines[0] == "processing language %s" % to_locale(locale) file_path = os.path.join(settings.STATIC_ROOT, "jsi18n", locale, "djangojs.js") assert os.path.exists(file_path) generated_content = open(file_path).read() assert 'global.MyBlock = MyBlock;' in generated_content
def test_compile(settings, locale): out = StringIO() management.call_command('compilejsi18n', verbosity=1, stdout=out, locale=to_locale(locale)) out.seek(0) lines = [l.strip() for l in out.readlines()] assert len(lines) == 1 assert lines[0] == "processing language %s" % to_locale(locale) filename = os.path.join(settings.STATICI18N_ROOT, "jsi18n", to_locale(locale), "djangojs.js") assert os.path.exists(filename) with io.open(filename, "r", encoding="utf-8") as fp: content = fp.read() assert LOCALIZED_CONTENT[locale] in content
def test_log_student_deleted_event(self): """Check logging signals for deleted student""" student = Student(first_name='Demo', last_name='Student') student.save() # now override signal # add own root handler to catch student signals output out = StringIO() handler = logging.StreamHandler(out) logging.root.addHandler(handler) # delete existing student and check logger output sid = student.id student.delete() out.seek(0) self.assertEqual(out.readlines()[-1], 'Student deleted: Demo Student (ID: %d)\n' % sid) # remove our handler from root logger logging.root.removeHandler(handler)
def test_log_group_deleted_event(self): """Check logging group for deleted student""" group = Group(title='Demo Group 1') group.save() # now override signal # add own root handler to catch student signals output out = StringIO() handler = logging.StreamHandler(out) logging.root.addHandler(handler) # delete existing group and check logger output sid = group.id group.delete() out.seek(0) self.assertEqual(out.readlines()[-1], 'Group Demo Group 1 deleted (ID: %d)\n' % sid) # remove our handler from root logger logging.root.removeHandler(handler)
def test_log_student_deleted_event(self): """Check logging signals for deleted student""" student = Student(first_name='Demo', last_name='Student') student.save() # now override signal # add own root handler to catch student signals output out = StringIO() handler = logging.StreamHandler(out) logging.root.addHandler(handler) # delete existing student and check logger output sid = student.id student.delete() out.seek(0) self.assertEqual(out.readlines()[-1], 'Student Demo Student deleted (ID: %d)\n' % sid) # remove our handler from root logger logging.root.removeHandler(handler)
def test_compile_no_use_i18n(settings, locale): """Tests compilation when `USE_I18N = False`. In this scenario, only the `settings.LANGUAGE_CODE` locale is processed (it defaults to `en-us` for Django projects). """ settings.USE_I18N = False out = StringIO() management.call_command('compilejsi18n', verbosity=1, stdout=out, locale=to_locale(locale)) out.seek(0) lines = [l.strip() for l in out.readlines()] assert len(lines) == 1 assert lines[0] == "processing language %s" % to_locale(locale) assert os.path.exists( os.path.join(settings.STATIC_ROOT, "jsi18n", to_locale(locale), "djangojs.js"))
def test_log_monthjournal_changes(self): """Test logging signal for changes in monthjournal""" # add own root handler to catch group signals output out = StringIO() handler = logging.StreamHandler(out) logging.root.addHandler(handler) student, created = Student.objects.get_or_create( first_name='Demo', last_name='Student', ticket='123') monthjournal, created = MonthJournal.objects.get_or_create( student=student, date=datetime.today()) monthjournal.present_day1 = True # check output file content out.seek(0) self.assertEqual(out.readlines()[-1], "MonthJournal updated: Demo Student (Journal ID: %d)\n" % monthjournal.id) # remove our handler from root logger logging.root.removeHandler(handler)
def test_log_group_deleted_event(self): """Check logging signal for deleted group""" # add own root handler to catch group signals output out = StringIO() handler = logging.StreamHandler(out) logging.root.addHandler(handler) # now create and delete group, this should raise new message inside # our logger output file group = Group(title='Demo Group') group.save() group_id = group.id group.delete() # check output file content out.seek(0) self.assertEqual(out.readlines()[-1], "Group deleted: Demo Group (ID: %d)\n" % group_id) # remove our handler from root logger logging.root.removeHandler(handler)
def test_log_contact_admin(self): """Test log message when mail was sent""" # add own root handler to catch group signals output out = StringIO() handler = logging.StreamHandler(out) logging.root.addHandler(handler) # prepare client and login as administrator client = Client() client.login(username='******', password='******') # make form submit client.post(reverse('contact_admin'), { 'from_email': '*****@*****.**', 'subject': 'test email', 'message': 'test email message', }) # check log message out.seek(0) self.assertIn("A message via Contact Form was sent", out.readlines()[-1]) # remove our handler from root logger logging.root.removeHandler(handler)
class StudentSignalTests(TestCase): """Testing log_student_event""" def setUp(self): self.out = StringIO() self.handler = logging.StreamHandler(self.out) logging.root.addHandler(self.handler) def tearDown(self): logging.root.removeHandler(self.handler) def test_add_update_student_event(self): """Check logging signal for newly created student""" # now create student, this should raise new message inside # our logger output file student, created = Student.objects.get_or_create(first_name="Illia", last_name="Petrov", birthday=date(2000, 12, 5), ticket=12345, study_start=date(2007, 9, 1)) # check output file content self.out.seek(0) self.assertEqual(self.out.readlines()[-1], 'Student added: Illia Petrov (ID: %d)\n' % student.id) # now update existing student and check last line in out student.ticket = '12345' student.save() self.out.seek(0) self.assertEqual(self.out.readlines()[-1], 'Student updated: Illia Petrov (ID: %d)\n' % student.id) def test_log_student_delete_event(self): """Test log deletetion student""" student, created = Student.objects.get_or_create(first_name="Illia", last_name="Petrov", birthday=date(2000, 12, 5), ticket=12345, study_start=date(2007, 9, 1)) stud_id = student.id student.delete() self.out.seek(0) self.assertEqual(self.out.readlines()[-1], "Student deleted: Illia Petrov (ID: %d)\n" % stud_id) def test_log_group_add_update_event(self): student = Student(first_name='Demo', last_name='Student') student.save() group = Group(title='TTE') group.save() self.out.seek(0) self.assertEqual(self.out.readlines()[-1], "Group added: %s (ID: %d)\n" % (group.title, group.id)) group.leader = student group.save() self.out.seek(0) self.assertEqual(self.out.readlines()[-1].strip(), "Group edited: {} (ID: {})".format(group.title, group.id)) def test_log_group_delete(self): group = Group(title='The Best Title') group.save() group_id = group.id group_title = group.title group.delete() self.out.seek(0) self.assertEqual(self.out.readlines()[-1].strip(), "Group deleted: {0} (ID: {1})".format(group_title, group_id)) def test_log_monthjournal_add_update(self): student = Student(first_name='Nick', last_name='Rest') student.save() monthjournal = MonthJournal(student=student, date=date(2016, 5, 2)) monthjournal.save() self.out.seek(0) self.assertEqual(self.out.readlines()[-1].strip(), "MonthJournal created: %s" % monthjournal) monthjournal.present_day1 = True monthjournal.save() self.out.seek(0) self.assertEqual(self.out.readlines()[-1].strip(), "MonthJournal updated: %s" % monthjournal) def test_log_monthjournal_delete(self): student = Student(first_name='Kick', last_name='Resl') student.save() monthjournal = MonthJournal(student=student, date=date(2016, 5, 2)) monthjournal.save() # import copy # mj = copy.deepcopy(monthjournal) mj = monthjournal monthjournal.delete() self.out.seek(0) self.assertEqual(self.out.readlines()[-1].strip(), "MonthJournal deleted: %s" % mj) def test_log_exam_add_update(self): group = Group(title='G-TTY') group.save() exam = Exam(title='Solphegio', exam_date=date(2016,5,12), presenter='Fedir Ivanovich') exam.save() self.out.seek(0) self.assertEqual(self.out.readlines()[-1].strip(), "Exam created: %s (ID: %d)" % (exam.title, exam.id)) exam.exam_group.add(group) exam.save() self.assertEqual(exam.exam_group ,Exam.objects.filter(title='Solphegio')[0].exam_group) group2 = Group(title='Phisics') group2.save() exam.exam_group.add(group2) exam.save() self.out.seek(0) self.assertEqual(self.out.readlines()[-1].strip(), "Exam updated: %s (ID: %d)" % (exam.title, exam.id)) def test_log_exam_delete(self): exam = Exam(title='Spanish', exam_date=date(2013,1,1), presenter='Petro P.') exam.save() copyexam = exam exam.delete() self.out.seek(0) self.assertEqual(self.out.readlines()[-1].strip(), "Exam deleted: %s" % copyexam) def test_log_exam_change_groups(self): group = Group(title='ASD') group.save() exam = Exam(title='Spanish', exam_date=date(2013,1,1), presenter='Petro P.') exam.save() exam.exam_group.add(group) exam.save() self.out.seek(0) info_str = "exam {} have next groups after modified:\n".format(exam) for exam_group in Exam.objects.filter(title='Spanish')[0].exam_group.all(): info_str += exam_group.title + '\n' out_str = ''.join(self.out.readlines()[-4:-2]) self.assertEqual(out_str, info_str) def test_log_result_exam_add_update(self): result_exam = Result_exam(valuetion=2) result_exam.save() self.out.seek(0) self.assertEqual(self.out.readlines()[-1].strip(), "Result_exam created(ID: %d)" % result_exam.id) result_exam.valuetion = 4 result_exam.save() self.out.seek(0) self.assertEqual(self.out.readlines()[-1].strip(), "Result_exam updated(ID: %d)" % result_exam.id) def test_log_result_exam_delete(self): res_exam = Result_exam(valuetion=5) res_exam.save() ruid = res_exam.id res_exam.delete() self.out.seek(0) self.assertEqual(self.out.readlines()[-1].strip(), "Result_exam deleted(ID: %d)" % ruid) def test_log_result_exam_change_students(self): res_exam = Result_exam(valuetion=5) res_exam.save() student = Student(first_name='Ioan', last_name='Serok') student.save() res_exam.students.add(student) res_exam.save() self.out.seek(0) self.assertEqual(self.out.readlines()[-2].strip(), "List of students was modified \ in result_exam {}".format(res_exam.id))
def capture_command(*args, **kwargs): stdout = StringIO() call_command(*args, stdout=stdout, **kwargs) stdout.seek(0) return stdout.readlines()