(
self,
args,
output,
format="json",
filename=None,
natural_foreign_keys=False,
natural_primary_keys=False,
use_base_manager=False,
exclude_list=[],
primary_keys="",
)
| 75 | |
| 76 | class DumpDataAssertMixin: |
| 77 | def _dumpdata_assert( |
| 78 | self, |
| 79 | args, |
| 80 | output, |
| 81 | format="json", |
| 82 | filename=None, |
| 83 | natural_foreign_keys=False, |
| 84 | natural_primary_keys=False, |
| 85 | use_base_manager=False, |
| 86 | exclude_list=[], |
| 87 | primary_keys="", |
| 88 | ): |
| 89 | new_io = StringIO() |
| 90 | filename = filename and os.path.join(tempfile.gettempdir(), filename) |
| 91 | management.call_command( |
| 92 | "dumpdata", |
| 93 | *args, |
| 94 | format=format, |
| 95 | stdout=new_io, |
| 96 | stderr=new_io, |
| 97 | output=filename, |
| 98 | use_natural_foreign_keys=natural_foreign_keys, |
| 99 | use_natural_primary_keys=natural_primary_keys, |
| 100 | use_base_manager=use_base_manager, |
| 101 | exclude=exclude_list, |
| 102 | primary_keys=primary_keys, |
| 103 | ) |
| 104 | if filename: |
| 105 | file_root, file_ext = os.path.splitext(filename) |
| 106 | compression_formats = { |
| 107 | ".bz2": (open, file_root), |
| 108 | ".gz": (gzip.open, filename), |
| 109 | ".lzma": (open, file_root), |
| 110 | ".xz": (open, file_root), |
| 111 | ".zip": (open, file_root), |
| 112 | } |
| 113 | if HAS_BZ2: |
| 114 | compression_formats[".bz2"] = (bz2.open, filename) |
| 115 | if HAS_LZMA: |
| 116 | compression_formats[".lzma"] = (lzma.open, filename) |
| 117 | compression_formats[".xz"] = (lzma.open, filename) |
| 118 | try: |
| 119 | open_method, file_path = compression_formats[file_ext] |
| 120 | except KeyError: |
| 121 | open_method, file_path = open, filename |
| 122 | with open_method(file_path, "rt") as f: |
| 123 | command_output = f.read() |
| 124 | os.remove(file_path) |
| 125 | else: |
| 126 | command_output = new_io.getvalue().strip() |
| 127 | if format == "json": |
| 128 | self.assertJSONEqual(command_output, output) |
| 129 | elif format == "xml": |
| 130 | self.assertXMLEqual(command_output, output) |
| 131 | else: |
| 132 | self.assertEqual(command_output, output) |
| 133 | |
| 134 |
no test coverage detected