def setUp(self):
        self.conditions = {
            'node_type':
            'NOT',
            'children': [{
                'node_type':
                'AND',
                'children': [{
                    'criteria_element': factories.ElementFactory().pk,
                    'node_type': 'EQUALS',
                    'value': 'foo'
                }, {
                    'criteria_element': factories.ElementFactory().pk,
                    'node_type': 'LESS',
                    'value': 'bar'
                }, {
                    'node_type':
                    'AND',
                    'children': [{
                        'criteria_element':
                        factories.ElementFactory().pk,
                        'node_type':
                        'GREATER',
                        'value':
                        'bar'
                    }]
                }]
            }]
        }

        self.generator = generators.ConditionNodeGenerator(
            self.conditions, factories.ShowIfFactory())
        self.node_etree_element = self.generator.generate(
            ElementTree.Element('test'))
    def setUp(self):
        self.show_if = factories.ShowIfFactory(conditions=json.dumps({
            'node_type':
            'NOT',
            'children': [{
                'node_type':
                'AND',
                'children': [{
                    'criteria_element': factories.ElementFactory().pk,
                    'node_type': 'EQUALS',
                    'value': 'foo'
                }, {
                    'criteria_element': factories.ElementFactory().pk,
                    'node_type': 'LESS',
                    'value': 'bar'
                }, {
                    'node_type':
                    'AND',
                    'children': [
                        {
                            'criteria_element': factories.ElementFactory().pk,
                            'node_type': 'GREATER',
                            'value': 'bar'
                        }
                    ]
                }]
            }]
        }))

        self.generator = generators.ShowIfGenerator(self.show_if)
        self.show_if_etree_element = self.generator.generate_show_if(
            ElementTree.Element('test'))
Exemple #3
0
    def test_orders_properly(self):
        page = factories.PageFactory()

        element1 = factories.ElementFactory(display_index=1, page=page)

        element2 = factories.ElementFactory(display_index=0, page=page)

        elements = Element.objects.all()

        assert_equals(len(elements), 2)
        assert_equals(elements[0], element2)
        assert_equals(elements[1], element1)
    def test_create_showif(self):
        page = factories.PageFactory()
        element = factories.ElementFactory()

        conditions = json.dumps({
            'node_type':
            'NOT',
            'children': [{
                'node_type':
                'AND',
                'children': [{
                    'criteria_element': element.pk,
                    'node_type': 'EQUALS',
                    'value': 'foo'
                }, {
                    'criteria_element': element.pk,
                    'node_type': 'LESS',
                    'value': 'bar'
                }]
            }]
        })
        ShowIf.objects.create(page=page, conditions=conditions)

        show_if = ShowIf.objects.get(page=page)

        assert_equals(show_if.page, page)
        assert_equals(show_if.conditions, conditions)
        assert_not_equals(show_if.last_modified, None)
        assert_not_equals(show_if.created, None)
 def test_error_if_wrong_type(self):
     data = {
         'criteria_element': factories.ElementFactory().pk,
         'node_type': 'GREATER',
         'value': 'bar'
     }
     generators.LogicalNodeGenerator(data, self.page).generate(ElementTree.Element('test'))
 def setUp(self):
     self.element = factories.ElementFactory()
     self.data = {
         'criteria_element': self.element.pk,
         'node_type': 'GREATER',
         'value': 'bar'
     }
Exemple #7
0
    def test_updates_last_modified(self):
        page = factories.PageFactory()
        original_last_modified = page.last_modified

        factories.ElementFactory(page=page)

        assert_true(original_last_modified < page.last_modified)
    def setUp(self):
        self.page = factories.PageFactory(display_index=0)

        factories.ElementFactory(page=self.page)

        self.generator = generators.PageGenerator(self.page)
        self.page_etree_element = self.generator.generate(
            ElementTree.Element('test'))
Exemple #9
0
    def setUp(self):
        self.client = Client(enforce_csrf_checks=False)
        self.user = factories.UserFactory()
        self.element = factories.ElementFactory()
        self.token = Token.objects.get(user=self.user)
        self.conditional_url = '/api/conditionals'

        grant_permissions()
    def setUp(self):
        self.element = factories.ElementFactory(display_index=0,
                                                element_type='ENTRY',
                                                question='Which valve',
                                                answer='[]')

        self.generator = generators.ElementGenerator(self.element)
        self.element_etree_element = self.generator.generate(
            ElementTree.Element('test'))
        self.attribs = self.element_etree_element.attrib
    def test_generates_and_or_node(self):
        data = {
            'node_type':
            'AND',
            'children': [{
                'criteria_element': factories.ElementFactory().pk,
                'node_type': 'GREATER',
                'value': 'bar'
            }, {
                'criteria_element': factories.ElementFactory().pk,
                'node_type': 'GREATER',
                'value': 'bar'
            }]
        }

        generator = generators.LogicalNodeGenerator(data,
                                                    factories.PageFactory())
        assert_is_not_none(
            generator.get_etree_node(ElementTree.Element('test')))
 def test_has_correct_name(self):
     generator = generators.LogicalNodeGenerator(
         {
             'node_type':
             'NOT',
             'children': [{
                 'criteria_element': factories.ElementFactory().pk,
                 'node_type': 'GREATER',
                 'value': 'bar'
             }]
         }, factories.PageFactory())
     assert_equals(generator.name, 'not')
    def setUp(self):
        self.procedure = factories.ProcedureFactory(
            author='TestUser',
            title='Burns"\''
        )

        for i in range(4):
            page = factories.PageFactory(
                procedure=self.procedure
            )

            factories.ElementFactory(
                page=page
            )

        elements = Element.objects.all()

        factories.ShowIfFactory(
            page=page,
            conditions=json.dumps({
                'node_type': 'NOT',
                'children': [
                    {
                        'node_type': 'AND',
                        'children': [
                            {
                                'criteria_element': elements[0].pk,
                                'node_type': 'EQUALS',
                                'value': 'foo'
                            },
                            {
                                'criteria_element': elements[1].pk,
                                'node_type': 'LESS',
                                'value': 'bar'
                            },
                            {
                                'node_type': 'AND',
                                'children': [
                                    {
                                        'criteria_element': elements[2].pk,
                                        'node_type': 'GREATER',
                                        'value': 'bar'
                                    }
                                ]
                            }
                        ]
                    }
                ]
            }))

        self.procedure.save()
    def test_error_if_blank_question(self):
        element = factories.ElementFactory(question='')

        generators.ElementGenerator(element).generate(
            ElementTree.Element('test'))
Exemple #15
0
    def assert_element_type_valid(self, element_type):
        element = factories.ElementFactory(element_type=element_type)

        assert_is_not_none(element)
Exemple #16
0
 def test_display_index_negative(self):
     factories.ElementFactory(display_index=-1)
    def test_error_if_no_answer(self):
        element = factories.ElementFactory(answer=None)

        generators.ElementGenerator(element).generate(
            ElementTree.Element('test'))
    def test_concept_optional(self):
        element = factories.ElementFactory(concept=None)

        element_etree = generators.ElementGenerator(element).generate(
            ElementTree.Element('test'))
        assert_false('concept' in element_etree.attrib)
    def test_error_if_no_concept(self):
        element = factories.ElementFactory(concept=None)

        generators.ElementGenerator(element).generate(
            ElementTree.Element('test'))
Exemple #20
0
 def test_element_type_invalid(self):
     factories.ElementFactory(element_type='BAD')