コード例 #1
0
ファイル: test_parsing.py プロジェクト: riboh/onadata
    def test_parse_xform_nested_repeats(self):
        self._publish_and_submit_new_repeats()
        parser = XFormInstanceParser(self.xml, self.xform)
        dict = parser.to_dict()
        expected_dict = {
            u'new_repeats': {
                u'info':
                {
                    u'age': u'80',
                    u'name': u'Adam'
                },
                u'kids':
                {
                    u'kids_details':
                    [
                        {
                            u'kids_age': u'50',
                            u'kids_name': u'Abel'
                        },
                    ],
                    u'has_kids': u'1'
                },
                u'web_browsers': u'chrome ie',
                u'gps': u'-1.2627557 36.7926442 0.0 30.0'
            }
        }
        self.assertEqual(dict, expected_dict)

        flat_dict = parser.to_flat_dict()
        expected_flat_dict = {
            u'gps': u'-1.2627557 36.7926442 0.0 30.0',
            u'kids/kids_details':
            [
                {
                    u'kids/kids_details/kids_name': u'Abel',
                    u'kids/kids_details/kids_age': u'50'
                }
            ],
            u'kids/has_kids': u'1',
            u'info/age': u'80',
            u'web_browsers': u'chrome ie',
            u'info/name': u'Adam'
        }
        self.assertEqual(flat_dict, expected_flat_dict)
コード例 #2
0
ファイル: test_parsing.py プロジェクト: hnjamba/onaclone-2018
    def test_multiple_media_files_on_encrypted_form(self):
        self._create_user_and_login()
        # publish our form which contains some some repeats
        xls_file_path = os.path.join(
            os.path.dirname(os.path.abspath(__file__)),
            "../fixtures/tutorial_encrypted/tutorial_encrypted.xls")
        count = XForm.objects.count()
        self._publish_xls_file_and_set_xform(xls_file_path)
        self.assertEqual(count + 1, XForm.objects.count())

        # submit an instance
        xml_submission_file_path = os.path.join(
            os.path.dirname(os.path.abspath(__file__)),
            "../fixtures/tutorial_encrypted/instances/tutorial_encrypted.xml")
        self._make_submission(xml_submission_file_path)
        self.assertNotContains(self.response,
                               "Multiple nodes with the same name",
                               status_code=201)

        # load xml file to parse and compare
        xml_file = open(xml_submission_file_path)
        self.xml = xml_file.read()
        xml_file.close()

        parser = XFormInstanceParser(self.xml, self.xform)
        dict = parser.to_dict()

        expected_list = [{
            u'file': u'1483528430996.jpg.enc'
        }, {
            u'file': u'1483528445767.jpg.enc'
        }]
        self.assertEqual(dict.get('data').get('media'), expected_list)

        flat_dict = parser.to_flat_dict()
        expected_flat_list = [{
            u'media/file': u'1483528430996.jpg.enc'
        }, {
            u'media/file': u'1483528445767.jpg.enc'
        }]
        self.assertEqual(flat_dict.get('media'), expected_flat_list)
コード例 #3
0
 def _set_parser(self):
     if not hasattr(self, "_parser"):
         self._parser = XFormInstanceParser(self.xml,
                                            self.xform_instance.xform)
コード例 #4
0
 def _set_parser(self):
     if not hasattr(self, "_parser"):
         self._parser = XFormInstanceParser(self.xml,
                                            self.xform.data_dictionary())
コード例 #5
0
ファイル: instance.py プロジェクト: childhelpline/myhelpline
 def _set_parser(self):
     if not hasattr(self, "_parser"):
         # pylint: disable=E1101
         self._parser = XFormInstanceParser(self.xml, self.xform)