Example #1
0
    def test_sav_special_char_columns(self):
        survey = create_survey_from_xls(
            _logger_fixture_path('grains/grains.xls'))
        export_builder = ExportBuilder()
        export_builder.TRUNCATE_GROUP_TITLE = True
        export_builder.set_survey(survey)
        export_builder.INCLUDE_LABELS = True
        export_builder.set_survey(survey)

        for sec in export_builder.sections:
            sav_options = export_builder._get_sav_options(sec['elements'])
            sav_file = NamedTemporaryFile(suffix=".sav")
            # No exception is raised
            SavWriter(sav_file.name, **sav_options)
Example #2
0
    def test_sav_special_char_columns(self):
        survey = create_survey_from_xls(
            _logger_fixture_path('grains/grains.xls'))
        export_builder = ExportBuilder()
        export_builder.TRUNCATE_GROUP_TITLE = True
        export_builder.set_survey(survey)
        export_builder.INCLUDE_LABELS = True
        export_builder.set_survey(survey)

        for sec in export_builder.sections:
            sav_options = export_builder._get_sav_options(sec['elements'])
            sav_file = NamedTemporaryFile(suffix=".sav")
            # No exception is raised
            SavWriter(sav_file.name, **sav_options)
Example #3
0
    def test_get_sav_value_labels_for_choice_filter(self):
        md = """
        | survey |
        |        | type              | name  | label | choice_filter |
        |        | select one fruits | fruit | Fruit | active=1      |

        | choices |
        |         | list name | name   | label  | active |
        |         | fruits    | orange | Orange | 1      |
        |         | fruits    | mango  | Mango  | 1      |
        """
        survey = self.md_to_pyxform_survey(md)
        export_builder = ExportBuilder()
        export_builder.TRUNCATE_GROUP_TITLE = True
        export_builder.set_survey(survey)
        export_builder.INCLUDE_LABELS = True
        export_builder.set_survey(survey)
        expected_data = {'fruit': {'orange': 'Orange', 'mango': 'Mango'}}
        self.assertEqual(export_builder._get_sav_value_labels(), expected_data)
Example #4
0
    def test_get_sav_value_labels_for_choice_filter(self):
        md = """
        | survey |
        |        | type              | name  | label | choice_filter |
        |        | select one fruits | fruit | Fruit | active=1      |

        | choices |
        |         | list name | name   | label  | active |
        |         | fruits    | orange | Orange | 1      |
        |         | fruits    | mango  | Mango  | 1      |
        """
        survey = self.md_to_pyxform_survey(md)
        export_builder = ExportBuilder()
        export_builder.TRUNCATE_GROUP_TITLE = True
        export_builder.set_survey(survey)
        export_builder.INCLUDE_LABELS = True
        export_builder.set_survey(survey)
        expected_data = {'fruit': {'orange': 'Orange', 'mango': 'Mango'}}
        self.assertEqual(export_builder._get_sav_value_labels(), expected_data)
Example #5
0
    def test_sav_duplicate_columns(self):
        more_than_64_char = "akjasdlsakjdkjsadlsakjgdlsagdgdgdsajdgkjdsdgsj" \
            "adsasdasgdsahdsahdsadgsdf"
        md = """
        | survey |
        |        | type           | name | label | choice_filter |
        |        | select one fts | fruit| Fruit | active=1      |
        |	     | integer	      | age  | Age   |               |
        |	     | integer	      | {}   | Resp2 |               |
        |        | begin group    | {}   | Resp  |               |
        |	     | integer	      | age  | Resp  |               |
        |	     | text 	      | name | Name  |               |
        |        | begin group    | {}   | Resp2 |               |
        |	     | integer	      | age  | Resp2 |               |
        |	     | integer	      | {}   | Resp2 |               |
        |        | end group      |      |       |               |
        |        | end group      |      |       |               |


        | choices |
        |         | list name | name   | label  | active |
        |         | fts       | orange | Orange | 1      |
        |         | fts       | mango  | Mango  | 1      |
        """
        md = md.format(more_than_64_char, more_than_64_char, more_than_64_char,
                       more_than_64_char)
        survey = self.md_to_pyxform_survey(md)
        export_builder = ExportBuilder()
        export_builder.TRUNCATE_GROUP_TITLE = True
        export_builder.set_survey(survey)
        export_builder.INCLUDE_LABELS = True
        export_builder.set_survey(survey)

        for sec in export_builder.sections:
            sav_options = export_builder._get_sav_options(sec['elements'])
            sav_file = NamedTemporaryFile(suffix=".sav")
            # No exception is raised
            SavWriter(sav_file.name, **sav_options)
Example #6
0
    def test_sav_duplicate_columns(self):
        more_than_64_char = "akjasdlsakjdkjsadlsakjgdlsagdgdgdsajdgkjdsdgsj" \
            "adsasdasgdsahdsahdsadgsdf"
        md = """
        | survey |
        |        | type           | name | label | choice_filter |
        |        | select one fts | fruit| Fruit | active=1      |
        |	     | integer	      | age  | Age   |               |
        |	     | integer	      | {}   | Resp2 |               |
        |        | begin group    | {}   | Resp  |               |
        |	     | integer	      | age  | Resp  |               |
        |	     | text 	      | name | Name  |               |
        |        | begin group    | {}   | Resp2 |               |
        |	     | integer	      | age  | Resp2 |               |
        |	     | integer	      | {}   | Resp2 |               |
        |        | end group      |      |       |               |
        |        | end group      |      |       |               |


        | choices |
        |         | list name | name   | label  | active |
        |         | fts       | orange | Orange | 1      |
        |         | fts       | mango  | Mango  | 1      |
        """
        md = md.format(more_than_64_char, more_than_64_char, more_than_64_char,
                       more_than_64_char)
        survey = self.md_to_pyxform_survey(md)
        export_builder = ExportBuilder()
        export_builder.TRUNCATE_GROUP_TITLE = True
        export_builder.set_survey(survey)
        export_builder.INCLUDE_LABELS = True
        export_builder.set_survey(survey)

        for sec in export_builder.sections:
            sav_options = export_builder._get_sav_options(sec['elements'])
            sav_file = NamedTemporaryFile(suffix=".sav")
            # No exception is raised
            SavWriter(sav_file.name, **sav_options)
Example #7
0
    def test_get_sav_value_labels_multi_language(self):
        md = """
        | survey |
        |        | type              | name  | label:English | label:Swahili |
        |        | select one fruits | fruit | Fruit         | Tunda         |

        | choices |
        |         | list name | name   | label: English | label:Swahili |
        |         | fruits    | orange | Orange         | Chungwa       |
        |         | fruits    | mango  | Mango          | Maembe        |
        """
        survey = self.md_to_pyxform_survey(md)
        export_builder = ExportBuilder()
        export_builder.TRUNCATE_GROUP_TITLE = True
        export_builder.set_survey(survey)
        export_builder.INCLUDE_LABELS = True
        export_builder.set_survey(survey)
        expected_data = {'fruit': {'orange': 'Orange', 'mango': 'Mango'}}
        self.assertEqual(export_builder._get_sav_value_labels(), expected_data)

        export_builder.dd._default_language = 'Swahili'
        expected_data = {'fruit': {'orange': 'Chungwa', 'mango': 'Maembe'}}
        self.assertEqual(export_builder._get_sav_value_labels(), expected_data)
Example #8
0
    def test_get_sav_value_labels_multi_language(self):
        md = """
        | survey |
        |        | type              | name  | label:English | label:Swahili |
        |        | select one fruits | fruit | Fruit         | Tunda         |

        | choices |
        |         | list name | name   | label: English | label:Swahili |
        |         | fruits    | orange | Orange         | Chungwa       |
        |         | fruits    | mango  | Mango          | Maembe        |
        """
        survey = self.md_to_pyxform_survey(md)
        export_builder = ExportBuilder()
        export_builder.TRUNCATE_GROUP_TITLE = True
        export_builder.set_survey(survey)
        export_builder.INCLUDE_LABELS = True
        export_builder.set_survey(survey)
        expected_data = {'fruit': {'orange': 'Orange', 'mango': 'Mango'}}
        self.assertEqual(export_builder._get_sav_value_labels(), expected_data)

        export_builder.dd._default_language = 'Swahili'
        expected_data = {'fruit': {'orange': 'Chungwa', 'mango': 'Maembe'}}
        self.assertEqual(export_builder._get_sav_value_labels(), expected_data)