test_basic.py (2075B)
1 #!/usr/bin/env python 2 # coding=UTF-8 3 4 from os import walk 5 6 import mozunit 7 import pytest 8 9 10 def test_no_dump_files(check_for_crashes): 11 """Test that check_for_crashes returns 0 if no dumps are present.""" 12 assert 0 == check_for_crashes() 13 14 15 @pytest.mark.parametrize("minidump_files", [3], indirect=True) 16 def test_dump_count(check_for_crashes, minidump_files): 17 """Test that check_for_crashes returns the number of crash dumps.""" 18 assert 3 == check_for_crashes() 19 20 21 def test_dump_directory_unicode(request, check_for_crashes, tmpdir, capsys): 22 """Test that check_for_crashes can handle unicode in dump_directory.""" 23 from conftest import minidump_files 24 25 tmpdir = tmpdir.ensure("🍪", dir=1) 26 minidump_files = minidump_files(request, tmpdir) 27 28 assert 1 == check_for_crashes(dump_directory=str(tmpdir), quiet=False) 29 30 out, _ = capsys.readouterr() 31 assert str(minidump_files[0]["dmp"]) in out 32 assert "🍪" in out 33 34 35 def test_test_name_unicode(check_for_crashes, minidump_files, capsys): 36 """Test that check_for_crashes can handle unicode in dump_directory.""" 37 assert 1 == check_for_crashes(test_name="🍪", quiet=False) 38 39 out, err = capsys.readouterr() 40 assert "| 🍪" in out 41 42 43 @pytest.mark.parametrize("keep", [True, False, None]) 44 def test_minidump_files_are_cleaned_up_or_preserved_in_original_location( 45 request, check_for_crashes, tmpdir, keep 46 ): 47 from conftest import minidump_files 48 49 tmpdir = tmpdir.ensure("test", dir=1) 50 minidump_files = minidump_files(request, tmpdir) 51 52 # Make sure that minidump files are present in the temporary location. 53 minidump_files_in_dir = next(walk(tmpdir), (None, None, []))[2] 54 assert len(minidump_files_in_dir) == 2 55 56 check_for_crashes(dump_directory=str(tmpdir), quiet=False, keep=keep) 57 58 # Make sure that minidump files are preserved if keep=True or 59 # removed otherwise. 60 minidump_files_in_dir = next(walk(tmpdir), (None, None, []))[2] 61 assert len(minidump_files_in_dir) == (2 if keep is True else 0) 62 63 64 if __name__ == "__main__": 65 mozunit.main()