Example #1
0
 def submit_audit(self):
     audit_template = AuditTemplateBuilder()
     audit_template.with_title(self.audit_title.text)
     for question in self.question_list.values():
         q = Question(text=question.question_text.text,
                      yes=question.yes_severity,
                      no=question.no_severity,
                      other=question.other_severity)
         audit_template.with_question(q)
     audit_template.build().save()
 def test_title_max_length(self):
     too_many_characters = "PM4t5qKhqS6oSEtPrtXUaQWbEeZ2ITca4AsSzF2KApecyI6Yh2f"
     self.assertRaises(
         ValidationError,
         AuditTemplateBuilder() \
             .with_title(too_many_characters) \
             .with_question(Question(text="Text")) \
             .build
     )
Example #3
0
    def submit_audit(self, callback):
        # Create a new audit using the supplied text the admin has entered.
        audit_template = AuditTemplateBuilder()
        audit_template.with_title(self.audit_title.text)
        for question in self.question_list.values():
            q = Question(text=question.question_text.text,
                         yes=question.yes_severity,
                         no=question.no_severity,
                         other=question.other_severity)
            audit_template.with_question(q)

        audit_template.build().save()
 def test_each_question_is_validated(self):
     self.assertRaises(
         ValidationError,
         AuditTemplateBuilder() \
             .with_title("Title") \
             .with_question(Question(text="Title1")) \
             .with_question(Question(text="Title2")) \
             .with_question(Question()) \
             .with_question(Question(text="Title3")) \
             .build
     )
    def test_storage_and_retrieval(self):
        title = "Test Storage And Retrieval"
        q0_text = "Question 0"
        q1_text = "Question 1"
        q2_text = "Question 2"
        question0 = Question(text=q0_text)

        question1 = Question(text=q1_text, yes=Severity.red())

        question2 = Question(text=q2_text,
                             no=Severity.red(),
                             other=Severity.yellow())

        AuditTemplateBuilder() \
            .with_title(title) \
            .with_question(question0) \
            .with_question(question1) \
            .with_question(question2) \
            .build() \
            .save()

        templates = AuditTemplate.objects(title=title)

        self.assertEqual(title, templates[0].title)
        self.assertEqual(1, len(templates))
        self.assertEqual(3, len(templates[0].questions))

        template = templates[0]

        self.assertEqual(q0_text, template.questions[0].text)
        self.assertEqual(Severity.green(), template.questions[0].yes)
        self.assertEqual(Severity.green(), template.questions[0].no)
        self.assertEqual(Severity.green(), template.questions[0].other)

        self.assertEqual(q1_text, template.questions[1].text)
        self.assertEqual(Severity.red(), template.questions[1].yes)
        self.assertEqual(Severity.green(), template.questions[1].no)
        self.assertEqual(Severity.green(), template.questions[1].other)

        self.assertEqual(q2_text, template.questions[2].text)
        self.assertEqual(Severity.green(), template.questions[2].yes)
        self.assertEqual(Severity.red(), template.questions[2].no)
        self.assertEqual(Severity.yellow(), template.questions[2].other)
Example #6
0
if __name__ == '__main__':
    for _ in range(NUM_TEMPLATES):
        time.sleep(DELAY)
        title = random_title()
        q0 = random_question()
        q1 = random_question()
        q2 = random_question()
        q3 = random_question()
        q4 = random_question()

        AuditTemplateBuilder() \
            .with_title(title) \
            .with_question(q0) \
            .with_question(q1) \
            .with_question(q2) \
            .with_question(q3) \
            .with_question(q4) \
            .build() \
            .save()

        for _ in range(NUM_COMPLETED_PER_TEMPLATE):
            time.sleep(DELAY)
            CompletedAuditBuilder() \
                .with_title(title) \
                .with_auditor(random.choice(AUDITORS)) \
                .with_answer(random_answer_from_question(q0)) \
                .with_answer(random_answer_from_question(q1)) \
                .with_answer(random_answer_from_question(q2)) \
                .with_answer(random_answer_from_question(q3)) \
                .with_answer(random_answer_from_question(q4)) \
 def test_title_is_required(self):
     self.assertRaises(
         ValidationError,
         AuditTemplateBuilder().with_question(Question(text="Text")).build)
 def test_title_min_length(self):
     self.assertRaises(
         ValidationError,
         AuditTemplateBuilder().with_title("").with_question(
             Question(text="Text")).build)
 def test_questions_are_required(self):
     self.assertRaises(ValidationError,
                       AuditTemplateBuilder().with_title("Title").build)
if __name__ == '__main__':
    print("\nGenerating", NUM_TEMPLATES, "AuditTemplate(s), each with",
          NUM_RESPONSES, "CompletedAudit(s) dated up to", MAX_YEAR_DELTA,
          "years ago.\n...")

    AuditTemplate.objects.delete()
    CompletedAudit.objects.delete()

    # Randomize Data
    shuffle(AUDIT_TITLES)
    shuffle(COMMENTS)

    # Create an AuditTemplate for each Audit Title and assign x-number of CompletedAudits (Responses) to it
    for title in AUDIT_TITLES:
        template_audit = AuditTemplateBuilder().with_title(title)

        # Use a variable number of random questions for each template and add them to this Audit Template
        rand_questions_list = []
        for question_text in sample(QUESTION_TEXTS,
                                    randrange(1, len(QUESTION_TEXTS))):
            q = get_question(question_text)
            rand_questions_list.append(q)
            template_audit.with_question(q)

        template_audit.build().save()

        # Assign a variable number of CompletedAudits (Responses) to this template (no duplicate auditors)
        for unique_auditor in sample(AUDITORS, NUM_RESPONSES):
            completed_audit = CompletedAuditBuilder() \
                .with_title(title) \