Example #1
0
 def test_malformed_file(self):
     csv_file = BytesIO()
     csv_file.write(bytes('Header\nMalformed data,\n,Title,Text,,,\n', 'utf8'))
     success_message, warning_message, error_message = import_motions(
         csvfile=csv_file, default_submitter=self.normal_user.person_id, override=False)
     self.assertEqual(success_message, '')
     self.assertTrue('Line is malformed.' in error_message)
Example #2
0
    def test_example_file_de(self):
        special_user = User.objects.create_user(
            username='******',
            password='******',
            first_name='Harry',
            last_name='Holland')
        for i in range(2):
            username = '******' % i
            User.objects.create_user(username=username,
                                     password='******',
                                     first_name='John',
                                     last_name='Doe')

        csv_dir = os.path.join(os.path.dirname(__file__), '..', '..', 'extras',
                               'csv-examples')
        self.assertEqual(Motion.objects.count(), 0)
        with open(csv_dir + '/motions-demo_de.csv') as f:
            success_message, warning_message, error_message = import_motions(
                csvfile=f,
                default_submitter=self.normal_user.person_id,
                override=False,
                importing_person=self.admin)
        self.assertEqual(Motion.objects.count(), 11)

        motion1 = Motion.objects.get(pk=1)
        self.assertEqual(motion1.identifier, '1')
        self.assertEqual(motion1.title, u'Entlastung des Vorstandes')
        self.assertEqual(
            motion1.text,
            u'Die Versammlung möge beschließen, den Vorstand für seine letzte Legislaturperiode zu entlasten.'
        )
        self.assertEqual(motion1.reason, u'Bericht erfolgt mündlich.')
        self.assertEqual(len(motion1.submitter.all()), 1)
        self.assertEqual(motion1.submitter.all()[0].person, self.normal_user)
        self.assertTrue(motion1.category is None)
        self.assertTrue('Submitter unknown.' in warning_message)
        self.assertTrue('Category unknown.' in warning_message)

        motion2 = Motion.objects.get(pk=2)
        self.assertEqual(motion2.identifier, 'SA 1')
        self.assertEqual(motion2.title, u'Satzungsänderung § 2 Abs. 3')
        self.assertHTMLEqual(
            motion2.text,
            u'''<p>Die Versammlung möge beschließen, die Satzung in § 2 Abs. 3 wie folgt zu ändern:</p>
                                               <p>Es wird vor dem Wort "Zweck" das Wort "gemeinnütziger" eingefügt.</p>'''
        )
        self.assertEqual(
            motion2.reason,
            u'Die Änderung der Satzung ist aufgrund der letzten Erfahrungen eine sinnvolle Maßnahme, weil ...'
        )
        self.assertEqual(len(motion2.submitter.all()), 1)
        self.assertEqual(motion2.submitter.all()[0].person, special_user)
        self.assertEqual(motion2.category, self.category1)

        # check user 'John Doe'
        self.assertTrue(
            'Several suitable submitters found.' in warning_message)
        # check category 'Bildung'
        self.assertTrue(
            'Several suitable categories found.' in warning_message)
Example #3
0
 def test_wrong_encoding(self):
     csv_file = StringIO.StringIO()
     text = u'Müller'.encode('iso-8859-15')
     csv_file.write(text)
     csv_file.seek(0)
     count_success, error_messages, warning_messages = import_motions(csv_file=csv_file, default_submitter=self.normal_user.person_id)
     self.assertEqual(count_success, 0)
     self.assertTrue('Import file has wrong character encoding, only UTF-8 is supported!' in error_messages)
Example #4
0
 def test_wrong_encoding(self):
     csv_file = BytesIO(bytes('Müller', 'iso-8859-15'))
     success_message, warning_message, error_message = import_motions(
         csvfile=csv_file,
         default_submitter=self.normal_user.person_id,
         override=False)
     self.assertEqual(success_message, '')
     self.assertIn('Import file has wrong character encoding, only UTF-8 is supported!', error_message)
Example #5
0
 def test_malformed_file(self):
     csv_file = StringIO.StringIO()
     csv_file.write('Header\nMalformed data,\n,Title,Text,,,\n')
     success_message, warning_message, error_message = import_motions(
         csvfile=csv_file,
         default_submitter=self.normal_user.person_id,
         override=False)
     self.assertEqual(success_message, '')
     self.assertTrue('Line is malformed.' in error_message)
Example #6
0
 def test_wrong_encoding(self):
     csv_file = BytesIO(bytes('Müller', 'iso-8859-15'))
     success_message, warning_message, error_message = import_motions(
         csvfile=csv_file,
         default_submitter=self.normal_user.id,
         override=False)
     self.assertEqual(success_message, '')
     self.assertIn(
         'Import file has wrong character encoding, only UTF-8 is supported!',
         error_message)
    def test_example_file_de(self):
        special_user = User.objects.create_user(username='******',
                                                password='******',
                                                first_name='Harry',
                                                last_name='Holland')
        for i in range(2):
            username = '******' % i
            User.objects.create_user(username=username,
                                     password='******',
                                     first_name='John',
                                     last_name='Doe')

        csv_dir = os.path.join(os.path.dirname(__file__), '..', '..', 'extras', 'csv-examples')
        self.assertEqual(Motion.objects.count(), 0)
        with open(csv_dir + '/motions-demo_de.csv') as f:
            count_success, count_lines, error_messages, warning_messages = import_motions(csv_file=f, default_submitter=self.normal_user.person_id)
        self.assertEqual(Motion.objects.count(), 11)
        self.assertEqual(count_success, 11)

        motion1 = Motion.objects.get(pk=1)
        self.assertEqual(motion1.identifier, '1')
        self.assertEqual(motion1.title, u'Entlastung des Vorstandes')
        self.assertEqual(motion1.text, u'Die Versammlung möge beschließen, den Vorstand für seine letzte Legislaturperiode zu entlasten.')
        self.assertEqual(motion1.reason, u'Bericht erfolgt mündlich.')
        self.assertEqual(len(motion1.submitter.all()), 1)
        self.assertEqual(motion1.submitter.all()[0].person, self.normal_user)
        self.assertTrue(motion1.category is None)
        self.assertTrue(any('Submitter unknown.' in w for w in warning_messages))
        self.assertTrue(any('Category unknown.' in w for w in warning_messages))

        motion2 = Motion.objects.get(pk=2)
        self.assertEqual(motion2.identifier, 'SA 1')
        self.assertEqual(motion2.title, u'Satzungsänderung § 2 Abs. 3')
        self.assertHTMLEqual(motion2.text, u'''<p>Die Versammlung möge beschließen, die Satzung in § 2 Abs. 3 wie folgt zu ändern:</p>
                                               <p>Es wird vor dem Wort "Zweck" das Wort "gemeinnütziger" eingefügt.</p>''')
        self.assertEqual(motion2.reason, u'Die Änderung der Satzung ist aufgrund der letzten Erfahrungen eine sinnvolle Maßnahme, weil ...')
        self.assertEqual(len(motion2.submitter.all()), 1)
        self.assertEqual(motion2.submitter.all()[0].person, special_user)
        self.assertEqual(motion2.category, self.category1)

        # check user 'John Doe'
        self.assertTrue(any('Several suitable submitters found.' in w for w in warning_messages))
        # check category 'Bildung'
        self.assertTrue(any('Several suitable categories found.' in w for w in warning_messages))
Example #8
0
 def test_malformed_file(self):
     csv_file = StringIO.StringIO()
     csv_file.write('Header\nMalformed data,\n,Title,Text,,,\n')
     count_success, count_lines, error_messages, warning_messages = import_motions(csv_file=csv_file, default_submitter=self.normal_user.person_id)
     self.assertEqual(count_success, 0)
     self.assertTrue(any('Line is malformed.' in e for e in error_messages))