Open florianm opened 5 years ago
Update: how to run merge_fixtures
from inside a function using Python 3.4+
from contextlib import redirect_stdout
f = io.StringIO()
with redirect_stdout(f):
call_command(
"merge_fixtures",
"my_app/fixtures/test_fixture_1.json",
"my_app/fixtures/test_fixture_2.json",
"my_app/fixtures/test_fixture_3.json",
"my_app/fixtures/test_fixture_4.json"
)
with open("my_app/fixtures/test_fixtures_combined.json", 'w+') as ff:
ff.write(f.getvalue())
Credit: stackoverflow answer by ForeverWintr
The above workaround does the job for me. Suggestions:
output_file
(or similar) to specify an output file to write to - if empty, print.print
ing the output, write to stdout like dump_object
does. Unless there's a good reason not to, of course.Otherwise, thanks for this package, it's perfect solution to quickly carve out some test data from a larger db.
This would be a good feature. Both should probably write to stdout and have a --output options.
Just a consistency issue:
dump_objects
writes to stdout, whilemerge_fixtures
doesn't.I want to use the commands from functions, so capturing stdout is easy:
Whereas trying to merge fixtures the same way fails (or I fail to capture the output):
Is this intended behaviour?