Exemplo n.º 1
0
    def test_orders_properly(self):
        procedure = factories.ProcedureFactory()

        page1 = factories.PageFactory(display_index=1, procedure=procedure)

        page2 = factories.PageFactory(display_index=0, procedure=procedure)

        pages = Page.objects.all()

        assert_equals(len(pages), 2)
        assert_equals(pages[0], page2)
        assert_equals(pages[1], page1)
 def setUp(self):
     self.client = Client()
     self.user = factories.UserFactory()
     procedure = factories.ProcedureFactory()
     self.page1 = factories.PageFactory(display_index=0,
                                        procedure=procedure)
     self.page2 = factories.PageFactory(display_index=1,
                                        procedure=procedure)
     self.page3 = factories.PageFactory(display_index=2,
                                        procedure=procedure)
     self.token = Token.objects.get(user=self.user)
     self.PARTIAL_BULK_URL = '/api/pages/partial_bulk_update'
     grant_permissions()
    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)
Exemplo n.º 4
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)
Exemplo n.º 5
0
    def test_elements_all_select_properties(self):
        page = factories.PageFactory()
        concept = factories.ConceptFactory()
        Element.objects.create(display_index=0,
                               element_type='SELECT',
                               choices='[one, two, three]',
                               concept=concept,
                               question='test question',
                               answer='',
                               required=True,
                               image='test',
                               audio='ping',
                               page=page)

        element = Element.objects.get(concept=concept)

        assert_equals(element.display_index, 0)
        assert_equals(element.element_type, 'SELECT')
        assert_equals(element.choices, '[one, two, three]')
        assert_equals(element.concept, concept)
        assert_equals(element.question, 'test question')
        assert_equals(element.answer, '')
        assert_equals(element.page, page)
        assert_true(element.required)
        assert_equals(element.image, 'test')
        assert_equals(element.audio, 'ping')
        assert_is_not_none(element.last_modified, None)
        assert_is_not_none(element.created, None)
Exemplo n.º 6
0
    def test_elements_all_plugin_properties(self):
        page = factories.PageFactory()
        concept = factories.ConceptFactory()
        Element.objects.create(display_index=0,
                               element_type='PLUGIN',
                               concept=concept,
                               question='test question',
                               answer='',
                               required=True,
                               image='test',
                               audio='ping',
                               action='action',
                               mime_type='text/javascript',
                               page=page)

        element = Element.objects.get(concept=concept)

        assert_equals(element.display_index, 0)
        assert_equals(element.element_type, 'PLUGIN')
        assert_equals(element.concept, concept)
        assert_equals(element.question, 'test question')
        assert_equals(element.answer, '')
        assert_equals(element.page, page)
        assert_true(element.required)
        assert_equals(element.image, 'test')
        assert_equals(element.audio, 'ping')
        assert_equals(element.action, 'action')
        assert_equals(element.mime_type, 'text/javascript')
        assert_is_not_none(element.last_modified, None)
        assert_is_not_none(element.created, None)
 def test_props(self):
     generator = generators.CriteriaNodeGenerator(self.data, factories.PageFactory())
     expected = {
         'value': self.data['value'],
         'id': str(self.element.pk),
         'type': self.data['node_type']
     }
     assert_equals(generator.get_properties(), expected)
    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'))
Exemplo n.º 9
0
    def test_create_page(self):
        test_procedure = factories.ProcedureFactory()

        page = factories.PageFactory(display_index=0, procedure=test_procedure)

        assert_equals(page.display_index, 0)
        assert_equals(page.procedure, test_procedure)
        assert_not_equals(page.last_modified, None)
        assert_not_equals(page.created, None)
 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')
Exemplo n.º 11
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 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_generates_not_node(self):
        data = {
            'node_type': 'NOT',
            'children': [
                {
                    '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')))
Exemplo n.º 14
0
    def test_procedure_comes_with_pages(self):
        procedure = factories.ProcedureFactory(owner=self.user)
        factories.PageFactory(procedure=procedure)
        flags = {'only_return_id': 'false'}

        response = self.client.get(path=self.procedure_url,
                                   data=flags,
                                   content_type='application/json',
                                   HTTP_AUTHORIZATION=add_token_to_header(
                                       self.user, self.token))

        assert_equals(response.status_code, status.HTTP_200_OK)
        body = json.loads(response.content)
        pages = body[0]['pages']
        assert_equals(len(pages), 1)
        assert_true('display_index' in pages[0])
Exemplo n.º 15
0
    def test_elements_required(self):
        page = factories.PageFactory()
        concept = factories.ConceptFactory()
        element = Element.objects.create(display_index=0,
                                         page=page,
                                         element_type='ENTRY',
                                         answer='',
                                         question='What does the fox say?',
                                         concept=concept)

        assert_equals(element.display_index, 0)
        assert_equals(element.page, page)
        assert_equals(element.element_type, 'ENTRY')
        assert_equals(element.answer, '')
        assert_equals(element.question, 'What does the fox say?')
        assert_equals(element.concept, concept)
        assert_equals(element.required, False)
 def test_generates_node(self):
     generator = generators.CriteriaNodeGenerator(self.data,
                                                  factories.PageFactory())
     assert_is_not_none(
         generator.get_etree_node(ElementTree.Element('test')))
 def test_has_correct_name(self):
     generator = generators.CriteriaNodeGenerator(self.data,
                                                  factories.PageFactory())
     assert_equals(generator.name, 'Criteria')
 def test_error_if_invalid_element(self):
     self.data['criteria_element'] = 99999
     generators.CriteriaNodeGenerator(self.data,
                                      factories.PageFactory()).generate(
                                          ElementTree.Element('test'))
 def test_error_if_no_element(self):
     del self.data['criteria_element']
     generators.CriteriaNodeGenerator(self.data,
                                      factories.PageFactory()).generate(
                                          ElementTree.Element('test'))
 def test_error_if_empty_value(self):
     self.data['value'] = ''
     generators.CriteriaNodeGenerator(self.data,
                                      factories.PageFactory()).generate(
                                          ElementTree.Element('test'))
 def test_error_if_wrong_type(self):
     self.data['node_type'] = 'AND'
     generators.CriteriaNodeGenerator(self.data,
                                      factories.PageFactory()).generate(
                                          ElementTree.Element('test'))
Exemplo n.º 22
0
 def test_display_index_uniqueness(self):
     factories.PageFactory(display_index=0)
     factories.PageFactory(display_index=0)
 def setUp(self):
     self.page = factories.PageFactory()