2017-12-05 6 views
0

Ich habe ein Modell, das ein Dateifeld hat, und ich habe mehr oder weniger das Modell wie die Prüfung so:Wie Sie Dateien in einem django Test behandeln

def test_importing_file_and_processing(self): 
    file_path = os.path.join(settings.BASE_DIR, 
          'myapp/tests/reports/test_input_file') 
    report = IngestedFile(
     filename='test_file' 
    ) 
    report.document.save('test_file', File(open(file_path))) 
    report.save() 
    report.do_stuff() 
    self.assertStuf.... 

Gibt es eine „bessere“ Art und Weise zu die Datei testen? Die Art, wie ich Dinge teste, sieht ein bisschen hacky aus.

+0

isolierte Funktion erstellen Was mit Ihrem aktuellen Methode ist falsch? Was meinst du mit "Hacky"? – nakiya

Antwort

0

können Sie verwenden tempfile Modul

import tempfile 

tmp_file = tempfile.NamedTemporaryFile(suffix='.pdf') 

with open(tmp_file.name, 'w') as f: 
    f.write('test_content') 

report.document = tmp_file 

oder Sie können für diese

def generate_test_file(file_format='.pdf'): 

    tmp_file = tempfile.NamedTemporaryFile(suffix=file_format) 

    with open(tmp_file.name, 'w') as f: 
     f.write('test_content') 

    return tmp_file 
Verwandte Themen