from django.core.management.base import CommandError from django.test import TestCase from documents.settings import EXPORTER_FILE_NAME from documents.management.commands.document_importer import Command class TestImporter(TestCase): def __init__(self, *args, **kwargs): TestCase.__init__(self, *args, **kwargs) def test_check_manifest_exists(self): cmd = Command() self.assertRaises( CommandError, cmd._check_manifest_exists, "/tmp/manifest.json", ) def test_check_manifest(self): cmd = Command() cmd.source = "/tmp" cmd.manifest = [{"model": "documents.document"}] with self.assertRaises(CommandError) as cm: cmd._check_manifest() self.assertIn("The manifest file contains a record", str(cm.exception)) cmd.manifest = [ {"model": "documents.document", EXPORTER_FILE_NAME: "noexist.pdf"}, ] # self.assertRaises(CommandError, cmd._check_manifest) with self.assertRaises(CommandError) as cm: cmd._check_manifest() self.assertIn( 'The manifest file refers to "noexist.pdf"', str(cm.exception), )