コード例 #1
0
ファイル: test_models.py プロジェクト: yishuihanhan/turkle
    def test_project_to_csv(self):
        project = Project(name='test',
                          html_template='<p>${number} - ${letter}</p>')
        project.save()
        batch_one = Batch(project=project)
        batch_one.save()

        task1 = Task(
            batch=batch_one,
            completed=True,
            input_csv_fields={
                'number': '1',
                'letter': 'a'
            },
        )
        task1.save()
        TaskAssignment(answers={
            'combined': '1a'
        },
                       assigned_to=None,
                       completed=True,
                       task=task1).save()

        batch_two = Batch(project=project)
        batch_two.save()
        task2 = Task(batch=batch_two,
                     completed=True,
                     input_csv_fields={
                         'number': '2',
                         'letter': 'b'
                     })
        task2.save()
        TaskAssignment(answers={
            'combined': '2b'
        },
                       assigned_to=None,
                       completed=True,
                       task=task2).save()

        csv_output = BytesIO()
        project.to_csv(csv_output)

        rows = csv_output.getvalue().split(b'\r\n')
        self.assertTrue(
            b'"Input.letter","Input.number","Answer.combined"' in rows[0])
        self.assertTrue(any([b'"a","1","1a"' in row for row in rows[1:]]))
        self.assertTrue(any([b'"b","2","2b"' in row for row in rows[1:]]))
コード例 #2
0
ファイル: test_models.py プロジェクト: yishuihanhan/turkle
    def test_project_to_csv_different_answers_per_batch(self):
        project = Project(name='test', html_template='<p>${letter}</p>')
        project.save()
        batch_one = Batch(project=project)
        batch_one.save()

        task1 = Task(
            batch=batch_one,
            completed=True,
            input_csv_fields={'letter': 'a'},
        )
        task1.save()
        TaskAssignment(answers={
            '1': 1,
            '2': 2
        },
                       assigned_to=None,
                       completed=True,
                       task=task1).save()

        batch_two = Batch(project=project)
        batch_two.save()
        task2 = Task(
            batch=batch_two,
            completed=True,
            input_csv_fields={'letter': 'b'},
        )
        task2.save()
        TaskAssignment(answers={
            '3': 3,
            '4': 4
        },
                       assigned_to=None,
                       completed=True,
                       task=task2).save()

        csv_output = BytesIO()
        project.to_csv(csv_output)

        rows = csv_output.getvalue().split(b'\r\n')
        self.assertTrue(
            b'"Input.letter","Answer.1","Answer.2","Answer.3","Answer.4"' in
            rows[0])
        self.assertTrue(b'"a","1","2","",""' in rows[1])
        self.assertTrue(b'"b","","","3","4"' in rows[2])
コード例 #3
0
ファイル: test_models.py プロジェクト: hltcoe/turkle
    def test_project_to_csv_different_answers_per_batch(self):
        project = Project(name='test', html_template='<p>${letter}</p><textarea>')
        project.save()
        batch_one = Batch(project=project)
        batch_one.save()

        task1 = Task(
            batch=batch_one,
            completed=True,
            input_csv_fields={'letter': 'a'},
        )
        task1.save()
        TaskAssignment(
            answers={'1': 1, '2': 2},
            assigned_to=None,
            completed=True,
            task=task1
        ).save()

        batch_two = Batch(project=project)
        batch_two.save()
        task2 = Task(
            batch=batch_two,
            completed=True,
            input_csv_fields={'letter': 'b'},
        )
        task2.save()
        TaskAssignment(
            answers={'3': 3, '4': 4},
            assigned_to=None,
            completed=True,
            task=task2
        ).save()

        csv_output = StringIO()
        project.to_csv(csv_output)

        rows = csv_output.getvalue().split('\r\n')
        self.assertTrue(
            '"Input.letter","Answer.1","Answer.2","Answer.3","Answer.4"' in rows[0])
        self.assertTrue('"a","1","2","",""' in rows[1])
        self.assertTrue('"b","","","3","4"' in rows[2])
コード例 #4
0
ファイル: test_models.py プロジェクト: hltcoe/turkle
    def test_project_to_csv(self):
        project = Project(name='test', html_template='<p>${number} - ${letter}</p><textarea>')
        project.save()
        batch_one = Batch(project=project)
        batch_one.save()

        task1 = Task(
            batch=batch_one,
            completed=True,
            input_csv_fields={'number': '1', 'letter': 'a'},
        )
        task1.save()
        TaskAssignment(
            answers={'combined': '1a'},
            assigned_to=None,
            completed=True,
            task=task1
        ).save()

        batch_two = Batch(project=project)
        batch_two.save()
        task2 = Task(
            batch=batch_two,
            completed=True,
            input_csv_fields={'number': '2', 'letter': 'b'}
        )
        task2.save()
        TaskAssignment(
            answers={'combined': '2b'},
            assigned_to=None,
            completed=True,
            task=task2
        ).save()

        csv_output = StringIO()
        project.to_csv(csv_output)

        rows = csv_output.getvalue().split('\r\n')
        self.assertTrue(
            '"Input.letter","Input.number","Answer.combined"' in rows[0])
        self.assertTrue(any(['"a","1","1a"' in row for row in rows[1:]]))
        self.assertTrue(any(['"b","2","2b"' in row for row in rows[1:]]))