コード例 #1
0
    def try_file(self, filename, expected_errors=None):
        """Expected_errors is an iterable of (line, error_code) pairs.

        If expected_errors is None, ignore errors, just check that the
        parser runs without trouble.

        If expected_errors is True, check that there are errors, but
        don't care which.

        Otherwise, expected_errors is an iterable.

        If expected_errors is empty, check that the parse is
        successful.

        Otherwise, assert that at least all expected_errors are
        present. There may be more."""

        path = resource_filename(
            'lizard_progress',
            'tests/test_met_files/' + filename)
        uploaded_file = self.setup_uploaded_file(path)
        process_uploaded_file.process_uploaded_file(uploaded_file.id)
        errors = set(
            (error.line, error.error_code)
            for error in self.get_errors(uploaded_file))

        # Process_uploaded_file gets a fresh instance from the database, so
        # our old one isn't updated
        uploaded_file = models.UploadedFile.objects.get(
            pk=uploaded_file.id)

        # Helpful in case this fails
        print(path)
        print(expected_errors)
        print(errors)

        if expected_errors is None:
            return

        if expected_errors is True:
            self.assertFalse(uploaded_file.success)
            self.assertTrue(len(errors) > 0)
        elif not expected_errors:
            self.assertTrue(uploaded_file.success)
            self.assertEquals(len(errors), 0)
        else:
            self.assertFalse(uploaded_file.success)
            self.assertTrue(len(errors) >= len(expected_errors))
            for error in expected_errors:
                self.assertTrue(error in errors)
コード例 #2
0
ファイル: tasks.py プロジェクト: pombredanne/lizard-progress
def process_uploaded_file_task(uploaded_file_id):
    """Call the process_uploaded_file function."""
    process_uploaded_file.process_uploaded_file(uploaded_file_id)