Example #1
0
    def test_parent_case_template_params(self):
        with self.create_child_case() as child_case, self.create_parent_case() as parent_case:
            set_parent_case(self.domain, child_case, parent_case)
            child_case = CaseAccessors(self.domain).get_case(child_case.case_id)

            r = MessagingTemplateRenderer()
            r.set_context_param('case', CaseMessagingTemplateParam(child_case))

            self.assertEqual(
                r.render("Child case prop: {case.child_prop1}"),
                "Child case prop: def"
            )
            self.assertEqual(
                r.render("Parent case prop: {case.parent.parent_prop1}"),
                "Parent case prop: abc"
            )
            self.assertEqual(
                r.render("Don't render case: {case.parent}"),
                "Don't render case: (?)"
            )
            self.assertEqual(
                r.render("No grandparent case: {case.parent.parent.name}"),
                "No grandparent case: (?)"
            )
            self.assertEqual(
                r.render("No host case: {case.host.name}"),
                "No host case: (?)"
            )
Example #2
0
    def test_host_case_template_params(self):
        with self.create_child_case() as extension_case, self.create_parent_case() as host_case:
            set_parent_case(self.domain, extension_case, host_case, relationship='extension')
            extension_case = CaseAccessors(self.domain).get_case(extension_case.case_id)

            r = MessagingTemplateRenderer()
            r.set_context_param('case', CaseMessagingTemplateParam(extension_case))

            self.assertEqual(
                r.render("Extension case prop: {case.child_prop1}"),
                "Extension case prop: def"
            )
            self.assertEqual(
                r.render("Host case prop: {case.host.parent_prop1}"),
                "Host case prop: abc"
            )
            self.assertEqual(
                r.render("Don't render case: {case.host}"),
                "Don't render case: (?)"
            )
            self.assertEqual(
                r.render("No host host case: {case.host.host.name}"),
                "No host host case: (?)"
            )
            self.assertEqual(
                r.render("No parent case: {case.parent.name}"),
                "No parent case: (?)"
            )
Example #3
0
    def test_host_case_template_params(self):
        with self.create_child_case() as extension_case, self.create_parent_case() as host_case:
            set_parent_case(self.domain, extension_case, host_case, relationship='extension')
            extension_case = CaseAccessors(self.domain).get_case(extension_case.case_id)

            r = MessagingTemplateRenderer()
            r.set_context_param('case', CaseMessagingTemplateParam(extension_case))

            self.assertEqual(
                r.render("Extension case prop: {case.child_prop1}"),
                "Extension case prop: def"
            )
            self.assertEqual(
                r.render("Host case prop: {case.host.parent_prop1}"),
                "Host case prop: abc"
            )
            self.assertEqual(
                r.render("Don't render case: {case.host}"),
                "Don't render case: (?)"
            )
            self.assertEqual(
                r.render("No host host case: {case.host.host.name}"),
                "No host host case: (?)"
            )
            self.assertEqual(
                r.render("No parent case: {case.parent.name}"),
                "No parent case: (?)"
            )
Example #4
0
    def test_parent_case_template_params(self):
        with self.create_child_case() as child_case, self.create_parent_case() as parent_case:
            set_parent_case(self.domain, child_case, parent_case)
            child_case = CaseAccessors(self.domain).get_case(child_case.case_id)

            r = MessagingTemplateRenderer()
            r.set_context_param('case', CaseMessagingTemplateParam(child_case))

            self.assertEqual(
                r.render("Child case prop: {case.child_prop1}"),
                "Child case prop: def"
            )
            self.assertEqual(
                r.render("Parent case prop: {case.parent.parent_prop1}"),
                "Parent case prop: abc"
            )
            self.assertEqual(
                r.render("Don't render case: {case.parent}"),
                "Don't render case: (?)"
            )
            self.assertEqual(
                r.render("No grandparent case: {case.parent.parent.name}"),
                "No grandparent case: (?)"
            )
            self.assertEqual(
                r.render("No host case: {case.host.name}"),
                "No host case: (?)"
            )
Example #5
0
    def test_case_template_params(self):
        with self.create_child_case() as case:
            r = MessagingTemplateRenderer()
            r.set_context_param('case', CaseMessagingTemplateParam(case))

            self.assertEqual(r.render("No template variables"),
                             "No template variables")
            self.assertEqual(r.render("Case's name is {case.name}"),
                             "Case's name is P002")
            self.assertEqual(
                r.render(
                    "Multiple properties: {case.name}, {case.child_prop1}"),
                "Multiple properties: P002, def")
            self.assertEqual(
                r.render("Unicode property: {case.unicode_property}"),
                "Unicode property: \u0928\u092e\u0938\u094d\u0924\u0947")
            self.assertEqual(r.render("Don't render case: {case}"),
                             "Don't render case: (?)")
            self.assertEqual(r.render("Unknown property: {case.unknown}"),
                             "Unknown property: (?)")
            self.assertEqual(
                r.render("Unknown property: {case.unknown.unknown}"),
                "Unknown property: (?)")
            self.assertEqual(r.render("Unknown param: {x}"),
                             "Unknown param: (?)")
Example #6
0
    def test_case_template_params(self):
        with self.create_child_case() as case:
            r = MessagingTemplateRenderer()
            r.set_context_param('case', CaseMessagingTemplateParam(case))

            self.assertEqual(
                r.render("No template variables"),
                "No template variables"
            )
            self.assertEqual(
                r.render("Case's name is {case.name}"),
                "Case's name is P002"
            )
            self.assertEqual(
                r.render("Multiple properties: {case.name}, {case.child_prop1}"),
                "Multiple properties: P002, def"
            )
            self.assertEqual(
                r.render("Unicode property: {case.unicode_property}"),
                "Unicode property: \u0928\u092e\u0938\u094d\u0924\u0947"
            )
            self.assertEqual(
                r.render("Don't render case: {case}"),
                "Don't render case: (?)"
            )
            self.assertEqual(
                r.render("Unknown property: {case.unknown}"),
                "Unknown property: (?)"
            )
            self.assertEqual(
                r.render("Unknown property: {case.unknown.unknown}"),
                "Unknown property: (?)"
            )
            self.assertEqual(
                r.render("Unknown param: {x}"),
                "Unknown param: (?)"
            )
Example #7
0
    def test_modified_by_template_params(self):
        r = MessagingTemplateRenderer()

        with self.create_parent_case(modified_by=self.mobile_user) as case:
            r.set_context_param('case', CaseMessagingTemplateParam(case))
            self.assertEqual(r.render("Name: {case.last_modified_by.name}"), "Name: mobile1")
            self.assertEqual(r.render("First Name: {case.last_modified_by.first_name}"), "First Name: Mobile")
            self.assertEqual(r.render("Last Name: {case.last_modified_by.last_name}"), "Last Name: User")
            self.assertEqual(r.render("Phone: {case.last_modified_by.phone_number}"), "Phone: 999123")
            self.assertEqual(r.render("Unknown: {case.last_modified_by.unknown}"), "Unknown: (?)")
            self.assertEqual(r.render("Unknown: {case.last_modified_by.unknown.unknown}"), "Unknown: (?)")

        with self.create_parent_case(modified_by=self.web_user) as case:
            r.set_context_param('case', CaseMessagingTemplateParam(case))
            self.assertEqual(r.render("Name: {case.last_modified_by.name}"), "Name: web1@templating-test")
            self.assertEqual(r.render("First Name: {case.last_modified_by.first_name}"), "First Name: Web")
            self.assertEqual(r.render("Last Name: {case.last_modified_by.last_name}"), "Last Name: User")
            self.assertEqual(r.render("Phone: {case.last_modified_by.phone_number}"), "Phone: 999456")
            self.assertEqual(r.render("Unknown: {case.last_modified_by.unknown}"), "Unknown: (?)")
            self.assertEqual(r.render("Unknown: {case.last_modified_by.unknown.unknown}"), "Unknown: (?)")

        with create_test_case(self.domain, 'person', 'Joe', user_id='system') as case:
            r.set_context_param('case', CaseMessagingTemplateParam(case))
            self.assertEqual(r.render("Name: {case.last_modified_by.name}"), "Name: System")
            self.assertEqual(r.render("First Name: {case.last_modified_by.first_name}"), "First Name: System")
            self.assertEqual(r.render("Last Name: {case.last_modified_by.last_name}"), "Last Name: ")
            self.assertEqual(r.render("Phone: {case.last_modified_by.phone_number}"), "Phone: ")
            self.assertEqual(r.render("Unknown: {case.last_modified_by.unknown}"), "Unknown: (?)")
            self.assertEqual(r.render("Unknown: {case.last_modified_by.unknown.unknown}"), "Unknown: (?)")
Example #8
0
    def test_owner_template_params(self):
        r = MessagingTemplateRenderer()

        with self.create_parent_case(owner=self.mobile_user) as case:
            r.set_context_param('case', CaseMessagingTemplateParam(case))
            self.assertEqual(r.render("Name: {case.owner.name}"), "Name: mobile1")
            self.assertEqual(r.render("First Name: {case.owner.first_name}"), "First Name: Mobile")
            self.assertEqual(r.render("Last Name: {case.owner.last_name}"), "Last Name: User")
            self.assertEqual(r.render("Phone: {case.owner.phone_number}"), "Phone: 999123")
            self.assertEqual(r.render("Unknown: {case.owner.unknown}"), "Unknown: (?)")
            self.assertEqual(r.render("Unknown: {case.owner.unknown.unknown}"), "Unknown: (?)")

        with self.create_parent_case(owner=self.web_user) as case:
            r.set_context_param('case', CaseMessagingTemplateParam(case))
            self.assertEqual(r.render("Name: {case.owner.name}"), "Name: web1@templating-test")
            self.assertEqual(r.render("First Name: {case.owner.first_name}"), "First Name: Web")
            self.assertEqual(r.render("Last Name: {case.owner.last_name}"), "Last Name: User")
            self.assertEqual(r.render("Phone: {case.owner.phone_number}"), "Phone: 999456")
            self.assertEqual(r.render("Unknown: {case.owner.unknown}"), "Unknown: (?)")
            self.assertEqual(r.render("Unknown: {case.owner.unknown.unknown}"), "Unknown: (?)")

        with self.create_parent_case(owner=self.group) as case:
            r.set_context_param('case', CaseMessagingTemplateParam(case))
            self.assertEqual(r.render("Name: {case.owner.name}"), "Name: Test Group")
            self.assertEqual(r.render("Unknown: {case.owner.unknown}"), "Unknown: (?)")
            self.assertEqual(r.render("Unknown: {case.owner.unknown.unknown}"), "Unknown: (?)")

        with self.create_parent_case(owner=self.location) as case:
            r.set_context_param('case', CaseMessagingTemplateParam(case))
            self.assertEqual(r.render("Name: {case.owner.name}"), "Name: Test Location")
            self.assertEqual(r.render("Site Code: {case.owner.site_code}"), "Site Code: loc1234")
            self.assertEqual(r.render("Unknown: {case.owner.unknown}"), "Unknown: (?)")
            self.assertEqual(r.render("Unknown: {case.owner.unknown.unknown}"), "Unknown: (?)")
Example #9
0
    def test_modified_by_template_params(self):
        r = MessagingTemplateRenderer()

        with self.create_parent_case(modified_by=self.mobile_user) as case:
            r.set_context_param('case', CaseMessagingTemplateParam(case))
            self.assertEqual(r.render("Name: {case.last_modified_by.name}"), "Name: mobile1")
            self.assertEqual(r.render("First Name: {case.last_modified_by.first_name}"), "First Name: Mobile")
            self.assertEqual(r.render("Last Name: {case.last_modified_by.last_name}"), "Last Name: User")
            self.assertEqual(r.render("Phone: {case.last_modified_by.phone_number}"), "Phone: 999123")
            self.assertEqual(r.render("Unknown: {case.last_modified_by.unknown}"), "Unknown: (?)")
            self.assertEqual(r.render("Unknown: {case.last_modified_by.unknown.unknown}"), "Unknown: (?)")

        with self.create_parent_case(modified_by=self.web_user) as case:
            r.set_context_param('case', CaseMessagingTemplateParam(case))
            self.assertEqual(r.render("Name: {case.last_modified_by.name}"), "Name: web1@templating-test")
            self.assertEqual(r.render("First Name: {case.last_modified_by.first_name}"), "First Name: Web")
            self.assertEqual(r.render("Last Name: {case.last_modified_by.last_name}"), "Last Name: User")
            self.assertEqual(r.render("Phone: {case.last_modified_by.phone_number}"), "Phone: 999456")
            self.assertEqual(r.render("Unknown: {case.last_modified_by.unknown}"), "Unknown: (?)")
            self.assertEqual(r.render("Unknown: {case.last_modified_by.unknown.unknown}"), "Unknown: (?)")

        with create_test_case(self.domain, 'person', 'Joe', user_id='system') as case:
            r.set_context_param('case', CaseMessagingTemplateParam(case))
            self.assertEqual(r.render("Name: {case.last_modified_by.name}"), "Name: System")
            self.assertEqual(r.render("First Name: {case.last_modified_by.first_name}"), "First Name: System")
            self.assertEqual(r.render("Last Name: {case.last_modified_by.last_name}"), "Last Name: ")
            self.assertEqual(r.render("Phone: {case.last_modified_by.phone_number}"), "Phone: ")
            self.assertEqual(r.render("Unknown: {case.last_modified_by.unknown}"), "Unknown: (?)")
            self.assertEqual(r.render("Unknown: {case.last_modified_by.unknown.unknown}"), "Unknown: (?)")
Example #10
0
    def test_owner_template_params(self):
        r = MessagingTemplateRenderer()

        with self.create_parent_case(owner=self.mobile_user) as case:
            r.set_context_param('case', CaseMessagingTemplateParam(case))
            self.assertEqual(r.render("Name: {case.owner.name}"), "Name: mobile1")
            self.assertEqual(r.render("First Name: {case.owner.first_name}"), "First Name: Mobile")
            self.assertEqual(r.render("Last Name: {case.owner.last_name}"), "Last Name: User")
            self.assertEqual(r.render("Phone: {case.owner.phone_number}"), "Phone: 999123")
            self.assertEqual(r.render("Unknown: {case.owner.unknown}"), "Unknown: (?)")
            self.assertEqual(r.render("Unknown: {case.owner.unknown.unknown}"), "Unknown: (?)")

        with self.create_parent_case(owner=self.web_user) as case:
            r.set_context_param('case', CaseMessagingTemplateParam(case))
            self.assertEqual(r.render("Name: {case.owner.name}"), "Name: web1@templating-test")
            self.assertEqual(r.render("First Name: {case.owner.first_name}"), "First Name: Web")
            self.assertEqual(r.render("Last Name: {case.owner.last_name}"), "Last Name: User")
            self.assertEqual(r.render("Phone: {case.owner.phone_number}"), "Phone: 999456")
            self.assertEqual(r.render("Unknown: {case.owner.unknown}"), "Unknown: (?)")
            self.assertEqual(r.render("Unknown: {case.owner.unknown.unknown}"), "Unknown: (?)")

        with self.create_parent_case(owner=self.group) as case:
            r.set_context_param('case', CaseMessagingTemplateParam(case))
            self.assertEqual(r.render("Name: {case.owner.name}"), "Name: Test Group")
            self.assertEqual(r.render("Unknown: {case.owner.unknown}"), "Unknown: (?)")
            self.assertEqual(r.render("Unknown: {case.owner.unknown.unknown}"), "Unknown: (?)")

        with self.create_parent_case(owner=self.location) as case:
            r.set_context_param('case', CaseMessagingTemplateParam(case))
            self.assertEqual(r.render("Name: {case.owner.name}"), "Name: Test Location")
            self.assertEqual(r.render("Site Code: {case.owner.site_code}"), "Site Code: loc1234")
            self.assertEqual(r.render("Unknown: {case.owner.unknown}"), "Unknown: (?)")
            self.assertEqual(r.render("Unknown: {case.owner.unknown.unknown}"), "Unknown: (?)")