diff --git a/ietf/doc/tests.py b/ietf/doc/tests.py index 09bdaa26a..aa0a52d19 100644 --- a/ietf/doc/tests.py +++ b/ietf/doc/tests.py @@ -422,9 +422,7 @@ Man Expires September 22, 2015 [Page 3] """ def setUp(self): - self.id_dir = os.path.abspath("tmp-id-dir") - if not os.path.exists(self.id_dir): - os.mkdir(self.id_dir) + self.id_dir = self.tempdir('id') self.saved_internet_draft_path = settings.INTERNET_DRAFT_PATH settings.INTERNET_DRAFT_PATH = self.id_dir self.saved_internet_all_drafts_archive_dir = settings.INTERNET_ALL_DRAFTS_ARCHIVE_DIR diff --git a/ietf/doc/tests_charter.py b/ietf/doc/tests_charter.py index e78b5fd15..3d50872bb 100644 --- a/ietf/doc/tests_charter.py +++ b/ietf/doc/tests_charter.py @@ -25,8 +25,7 @@ from ietf.utils.test_utils import login_testing_unauthorized class EditCharterTests(TestCase): def setUp(self): - self.charter_dir = os.path.abspath("tmp-charter-dir") - os.mkdir(self.charter_dir) + self.charter_dir = self.tempdir('charter') self.saved_charter_path = settings.CHARTER_PATH settings.CHARTER_PATH = self.charter_dir diff --git a/ietf/doc/tests_conflict_review.py b/ietf/doc/tests_conflict_review.py index b3c1dea79..0b9594286 100644 --- a/ietf/doc/tests_conflict_review.py +++ b/ietf/doc/tests_conflict_review.py @@ -388,8 +388,7 @@ class ConflictReviewSubmitTests(TestCase): def setUp(self): make_test_data() - self.test_dir = os.path.abspath("tmp-conflict-review-testdir") - os.mkdir(self.test_dir) + self.test_dir = self.tempdir('conflict-review') self.saved_conflict_review_path = settings.CONFLICT_REVIEW_PATH settings.CONFLICT_REVIEW_PATH = self.test_dir diff --git a/ietf/doc/tests_draft.py b/ietf/doc/tests_draft.py index a21b4d881..e1df40ed8 100644 --- a/ietf/doc/tests_draft.py +++ b/ietf/doc/tests_draft.py @@ -549,12 +549,8 @@ class ExpireIDsTests(TestCase): def setUp(self): self.saved_id_dir = settings.INTERNET_DRAFT_PATH self.saved_archive_dir = settings.INTERNET_DRAFT_ARCHIVE_DIR - self.id_dir = os.path.abspath("tmp-id-dir") - self.archive_dir = os.path.abspath("tmp-id-archive") - if not os.path.exists(self.id_dir): - os.mkdir(self.id_dir) - if not os.path.exists(self.archive_dir): - os.mkdir(self.archive_dir) + self.id_dir = self.tempdir('id') + self.archive_dir = self.tempdir('id-archive') os.mkdir(os.path.join(self.archive_dir, "unknown_ids")) os.mkdir(os.path.join(self.archive_dir, "deleted_tombstones")) os.mkdir(os.path.join(self.archive_dir, "expired_without_tombstone")) diff --git a/ietf/doc/tests_material.py b/ietf/doc/tests_material.py index d22f70838..1f098e124 100644 --- a/ietf/doc/tests_material.py +++ b/ietf/doc/tests_material.py @@ -22,15 +22,17 @@ from ietf.utils.test_data import make_test_data class GroupMaterialTests(TestCase): def setUp(self): - self.materials_dir = os.path.abspath("tmp-document-dir") - if not os.path.exists(self.materials_dir): - os.makedirs(os.path.join(self.materials_dir, "slides")) + self.materials_dir = self.tempdir("materials") + self.slides_dir = os.path.join(self.materials_dir, "slides") + if not os.path.exists(self.slides_dir): + os.mkdir(self.slides_dir) self.saved_document_path_pattern = settings.DOCUMENT_PATH_PATTERN settings.DOCUMENT_PATH_PATTERN = self.materials_dir + "/{doc.type_id}/" - self.agenda_dir = os.path.abspath("tmp-agenda-dir") - if not os.path.exists(self.agenda_dir): - os.makedirs(os.path.join(self.agenda_dir, "42", "slides")) + self.agenda_dir = self.tempdir("agenda") + self.meeting_slides_dir = os.path.join(self.agenda_dir, "42", "slides") + if not os.path.exists(self.meeting_slides_dir): + os.makedirs(self.meeting_slides_dir) self.saved_agenda_path = settings.AGENDA_PATH settings.AGENDA_PATH = self.agenda_dir diff --git a/ietf/doc/tests_review.py b/ietf/doc/tests_review.py index 4c0562fc9..4b91c2427 100644 --- a/ietf/doc/tests_review.py +++ b/ietf/doc/tests_review.py @@ -30,10 +30,7 @@ from ietf.person.factories import PersonFactory class ReviewTests(TestCase): def setUp(self): - self.review_dir = os.path.abspath("tmp-review-dir") - if not os.path.exists(self.review_dir): - os.mkdir(self.review_dir) - + self.review_dir = self.tempdir('review') self.old_document_path_pattern = settings.DOCUMENT_PATH_PATTERN settings.DOCUMENT_PATH_PATTERN = self.review_dir + "/{doc.type_id}/" diff --git a/ietf/doc/tests_status_change.py b/ietf/doc/tests_status_change.py index a84a6ae73..00a18bb12 100644 --- a/ietf/doc/tests_status_change.py +++ b/ietf/doc/tests_status_change.py @@ -479,9 +479,7 @@ class StatusChangeSubmitTests(TestCase): def setUp(self): make_test_data() - self.test_dir = os.path.abspath("tmp-status-change-testdir") - if not os.path.exists(self.test_dir): - os.mkdir(self.test_dir) + self.test_dir = self.tempdir('status-change') self.saved_status_change_path = settings.STATUS_CHANGE_PATH settings.STATUS_CHANGE_PATH = self.test_dir diff --git a/ietf/group/tests_info.py b/ietf/group/tests_info.py index 86c798fb3..e13689196 100644 --- a/ietf/group/tests_info.py +++ b/ietf/group/tests_info.py @@ -42,8 +42,7 @@ def group_urlreverse_list(group, viewname): class GroupPagesTests(TestCase): def setUp(self): - self.charter_dir = os.path.abspath("tmp-charter-dir") - os.mkdir(self.charter_dir) + self.charter_dir = self.tempdir('charter') self.saved_charter_path = settings.CHARTER_PATH settings.CHARTER_PATH = self.charter_dir @@ -418,8 +417,7 @@ class GroupPagesTests(TestCase): class GroupEditTests(TestCase): def setUp(self): - self.charter_dir = os.path.abspath("tmp-charter-dir") - os.mkdir(self.charter_dir) + self.charter_dir = self.tempdir('charter') self.saved_charter_path = settings.CHARTER_PATH settings.CHARTER_PATH = self.charter_dir diff --git a/ietf/idindex/tests.py b/ietf/idindex/tests.py index b79a2dac9..e06739237 100644 --- a/ietf/idindex/tests.py +++ b/ietf/idindex/tests.py @@ -12,9 +12,7 @@ from ietf.utils.test_data import make_test_data class IndexTests(TestCase): def setUp(self): - self.id_dir = os.path.abspath("tmp-id-dir") - if not os.path.exists(self.id_dir): - os.mkdir(self.id_dir) + self.id_dir = self.tempdir('id') self.saved_internet_draft_path = settings.INTERNET_DRAFT_PATH settings.INTERNET_DRAFT_PATH = self.id_dir diff --git a/ietf/iesg/tests.py b/ietf/iesg/tests.py index aa7d976f9..62ce9163d 100644 --- a/ietf/iesg/tests.py +++ b/ietf/iesg/tests.py @@ -95,9 +95,7 @@ class IESGAgendaTests(TestCase): by = Person.objects.get(name="Areaư Irector") date = get_agenda_date() - self.draft_dir = os.path.abspath("tmp-agenda-draft-dir") - if not os.path.exists(self.draft_dir): - os.mkdir(self.draft_dir) + self.draft_dir = self.tempdir('agenda-draft') self.saved_internet_draft_path = settings.INTERNET_DRAFT_PATH settings.INTERNET_DRAFT_PATH = self.draft_dir diff --git a/ietf/ietfauth/tests.py b/ietf/ietfauth/tests.py index 642603163..abf3ec027 100644 --- a/ietf/ietfauth/tests.py +++ b/ietf/ietfauth/tests.py @@ -41,8 +41,7 @@ class IetfAuthTests(TestCase): settings.USE_PYTHON_HTDIGEST = True self.saved_htpasswd_file = settings.HTPASSWD_FILE - self.htpasswd_dir = os.path.abspath("tmp-htpasswd-dir") - os.mkdir(self.htpasswd_dir) + self.htpasswd_dir = self.tempdir('htpasswd') settings.HTPASSWD_FILE = os.path.join(self.htpasswd_dir, "htpasswd") open(settings.HTPASSWD_FILE, 'a').close() # create empty file diff --git a/ietf/liaisons/tests.py b/ietf/liaisons/tests.py index 93272fc51..802ba8157 100644 --- a/ietf/liaisons/tests.py +++ b/ietf/liaisons/tests.py @@ -321,9 +321,7 @@ class ManagementCommandTests(TestCase): class LiaisonManagementTests(TestCase): def setUp(self): self.saved_liaison_attach_path = settings.LIAISON_ATTACH_PATH - self.liaison_dir = os.path.abspath("tmp-liaison-dir") - if not os.path.exists(self.liaison_dir): - os.mkdir(self.liaison_dir) + self.liaison_dir = self.tempdir('liaison') settings.LIAISON_ATTACH_PATH = self.liaison_dir def tearDown(self): diff --git a/ietf/meeting/tests_views.py b/ietf/meeting/tests_views.py index f1d3825c0..ba7e1211d 100644 --- a/ietf/meeting/tests_views.py +++ b/ietf/meeting/tests_views.py @@ -38,9 +38,7 @@ from ietf.doc.factories import DocumentFactory class MeetingTests(TestCase): def setUp(self): - self.materials_dir = os.path.abspath(settings.TEST_MATERIALS_DIR) - if not os.path.exists(self.materials_dir): - os.mkdir(self.materials_dir) + self.materials_dir = self.tempdir('materials') self.saved_agenda_path = settings.AGENDA_PATH settings.AGENDA_PATH = self.materials_dir @@ -620,9 +618,7 @@ class EditScheduleListTests(TestCase): class InterimTests(TestCase): def setUp(self): - self.materials_dir = os.path.abspath(settings.TEST_MATERIALS_DIR) - if not os.path.exists(self.materials_dir): - os.mkdir(self.materials_dir) + self.materials_dir = self.tempdir('materials') self.saved_agenda_path = settings.AGENDA_PATH settings.AGENDA_PATH = self.materials_dir @@ -1440,7 +1436,7 @@ class FinalizeProceedingsTests(TestCase): class MaterialsTests(TestCase): def setUp(self): - self.materials_dir = os.path.abspath(settings.TEST_MATERIALS_DIR) + self.materials_dir = self.tempdir('materials') if not os.path.exists(self.materials_dir): os.mkdir(self.materials_dir) self.saved_agenda_path = settings.AGENDA_PATH diff --git a/ietf/nomcom/tests.py b/ietf/nomcom/tests.py index 6922e8da9..fb7696e95 100644 --- a/ietf/nomcom/tests.py +++ b/ietf/nomcom/tests.py @@ -1,7 +1,6 @@ # -*- coding: utf-8 -*- #import tempfile import datetime -import os import shutil import urlparse from pyquery import PyQuery @@ -52,9 +51,7 @@ def get_cert_files(): def build_test_public_keys_dir(obj): obj.saved_nomcom_public_keys_dir = settings.NOMCOM_PUBLIC_KEYS_DIR - obj.nomcom_public_keys_dir = os.path.abspath("tmp-nomcom-public-keys-dir") - if not os.path.exists(obj.nomcom_public_keys_dir): - os.mkdir(obj.nomcom_public_keys_dir) + obj.nomcom_public_keys_dir = obj.tempdir('nomcom-public-keys') settings.NOMCOM_PUBLIC_KEYS_DIR = obj.nomcom_public_keys_dir def clean_test_public_keys_dir(obj): diff --git a/ietf/secr/drafts/tests_views.py b/ietf/secr/drafts/tests_views.py index 54a965462..7724b653b 100644 --- a/ietf/secr/drafts/tests_views.py +++ b/ietf/secr/drafts/tests_views.py @@ -1,4 +1,3 @@ -import os import shutil from StringIO import StringIO @@ -21,18 +20,15 @@ SECR_USER='secretary' class SecrDraftsTestCase(TestCase): def setUp(self): self.saved_internet_draft_path = settings.INTERNET_DRAFT_PATH - self.repository_dir = os.path.abspath("tmp-submit-repository-dir") - os.mkdir(self.repository_dir) + self.repository_dir = self.tempdir('submit-repository') settings.INTERNET_DRAFT_PATH = self.repository_dir self.saved_internet_draft_archive_dir = settings.INTERNET_DRAFT_ARCHIVE_DIR - self.archive_dir = os.path.abspath("tmp-submit-archive-dir") - os.mkdir(self.archive_dir) + self.archive_dir = self.tempdir('submit-archive') settings.INTERNET_DRAFT_ARCHIVE_DIR = self.archive_dir self.saved_idsubmit_manual_staging_dir = settings.IDSUBMIT_MANUAL_STAGING_DIR - self.manual_dir = os.path.abspath("tmp-submit-manual-dir") - os.mkdir(self.manual_dir) + self.manual_dir = self.tempdir('submit-manual') settings.IDSUBMIT_MANUAL_STAGING_DIR = self.manual_dir def tearDown(self): diff --git a/ietf/secr/meetings/tests.py b/ietf/secr/meetings/tests.py index fbcc499d7..f6aa1fe72 100644 --- a/ietf/secr/meetings/tests.py +++ b/ietf/secr/meetings/tests.py @@ -20,24 +20,18 @@ from ietf.utils.test_utils import TestCase class SecrMeetingTestCase(TestCase): def setUp(self): - self.proceedings_dir = os.path.abspath("tmp-proceedings-dir") - if not os.path.exists(self.proceedings_dir): - os.mkdir(self.proceedings_dir) + self.proceedings_dir = self.tempdir('proceedings') self.saved_secr_proceedings_dir = settings.SECR_PROCEEDINGS_DIR settings.SECR_PROCEEDINGS_DIR = self.proceedings_dir self.saved_agenda_path = settings.AGENDA_PATH settings.AGENDA_PATH = self.proceedings_dir - self.bluesheet_dir = os.path.abspath(settings.TEST_BLUESHEET_DIR) + self.bluesheet_dir = self.tempdir('bluesheet') self.bluesheet_path = os.path.join(self.bluesheet_dir,'blue_sheet.rtf') - if not os.path.exists(self.bluesheet_dir): - os.mkdir(self.bluesheet_dir) self.saved_secr_blue_sheet_path = settings.SECR_BLUE_SHEET_PATH settings.SECR_BLUE_SHEET_PATH = self.bluesheet_path - self.materials_dir = os.path.abspath(settings.TEST_MATERIALS_DIR) - if not os.path.exists(self.materials_dir): - os.mkdir(self.materials_dir) + self.materials_dir = self.tempdir('materials') def tearDown(self): settings.SECR_PROCEEDINGS_DIR = self.saved_secr_proceedings_dir diff --git a/ietf/secr/proceedings/tests.py b/ietf/secr/proceedings/tests.py index b41d6bea7..82b034b61 100644 --- a/ietf/secr/proceedings/tests.py +++ b/ietf/secr/proceedings/tests.py @@ -39,11 +39,9 @@ class ProceedingsTestCase(TestCase): class RecordingTestCase(TestCase): def setUp(self): - self.meeting_recordings_dir = os.path.abspath("tmp-meeting-recordings-dir") + self.meeting_recordings_dir = self.tempdir('meeting-recordings') self.saved_meeting_recordings_dir = settings.MEETING_RECORDINGS_DIR settings.MEETING_RECORDINGS_DIR = self.meeting_recordings_dir - if not os.path.exists(self.meeting_recordings_dir): - os.makedirs(self.meeting_recordings_dir) def tearDown(self): shutil.rmtree(self.meeting_recordings_dir) @@ -182,7 +180,7 @@ class OldProceedingsTestCase(TestCase): ''' Ensure coverage of fragments of old proceedings generation until those are removed ''' def setUp(self): self.session = SessionFactory(meeting__type_id='ietf') - self.proceedings_dir = os.path.abspath("tmp-proceedings-dir") + self.proceedings_dir = self.tempdir('proceedings') # This unintuitive bit is a consequence of the surprising implementation of meeting.get_materials_path self.saved_agenda_path = settings.AGENDA_PATH diff --git a/ietf/settings.py b/ietf/settings.py index ec5834b90..3540c8bb7 100644 --- a/ietf/settings.py +++ b/ietf/settings.py @@ -461,10 +461,6 @@ TEST_DIFF_FAILURE_DIR = "/tmp/test/failure/" TEST_GHOSTDRIVER_LOG_PATH = "ghostdriver.log" -TEST_MATERIALS_DIR = "tmp-meeting-materials-dir" - -TEST_BLUESHEET_DIR = "tmp-bluesheet-dir" - # These are regexes TEST_URL_COVERAGE_EXCLUDE = [ r"^\^admin/", diff --git a/ietf/submit/tests.py b/ietf/submit/tests.py index 78a781656..2348be203 100644 --- a/ietf/submit/tests.py +++ b/ietf/submit/tests.py @@ -56,34 +56,28 @@ def submission_file(name, rev, group, format, templatename, author=None): class SubmitTests(TestCase): def setUp(self): self.saved_idsubmit_staging_path = settings.IDSUBMIT_STAGING_PATH - self.staging_dir = os.path.abspath("tmp-submit-staging-dir") - os.mkdir(self.staging_dir) + self.staging_dir = self.tempdir('submit-staging') settings.IDSUBMIT_STAGING_PATH = self.staging_dir self.saved_internet_draft_path = settings.INTERNET_DRAFT_PATH self.saved_idsubmit_repository_path = settings.IDSUBMIT_REPOSITORY_PATH - self.repository_dir = os.path.abspath("tmp-submit-repository-dir") - os.mkdir(self.repository_dir) + self.repository_dir = self.tempdir('submit-repository') settings.INTERNET_DRAFT_PATH = settings.IDSUBMIT_REPOSITORY_PATH = self.repository_dir self.saved_archive_dir = settings.INTERNET_DRAFT_ARCHIVE_DIR - self.archive_dir = os.path.abspath("tmp-submit-archive-dir") - os.mkdir(self.archive_dir) + self.archive_dir = self.tempdir('submit-archive') settings.INTERNET_DRAFT_ARCHIVE_DIR = self.archive_dir self.saved_yang_rfc_model_dir = settings.YANG_RFC_MODEL_DIR - self.yang_rfc_model_dir = os.path.abspath("tmp-yang-rfc-model-dir") - os.mkdir(self.yang_rfc_model_dir) + self.yang_rfc_model_dir = self.tempdir('yang-rfc-model') settings.YANG_RFC_MODEL_DIR = self.yang_rfc_model_dir self.saved_yang_draft_model_dir = settings.YANG_DRAFT_MODEL_DIR - self.yang_draft_model_dir = os.path.abspath("tmp-yang-draft-model-dir") - os.mkdir(self.yang_draft_model_dir) + self.yang_draft_model_dir = self.tempdir('yang-draft-model') settings.YANG_DRAFT_MODEL_DIR = self.yang_draft_model_dir self.saved_yang_inval_model_dir = settings.YANG_INVAL_MODEL_DIR - self.yang_inval_model_dir = os.path.abspath("tmp-yang-inval-model-dir") - os.mkdir(self.yang_inval_model_dir) + self.yang_inval_model_dir = self.tempdir('yang-inval-model') settings.YANG_INVAL_MODEL_DIR = self.yang_inval_model_dir def tearDown(self): diff --git a/ietf/sync/tests.py b/ietf/sync/tests.py index 534afb25a..e03f6c746 100644 --- a/ietf/sync/tests.py +++ b/ietf/sync/tests.py @@ -211,12 +211,8 @@ class RFCSyncTests(TestCase): def setUp(self): self.save_id_dir = settings.INTERNET_DRAFT_PATH self.save_archive_dir = settings.INTERNET_DRAFT_ARCHIVE_DIR - self.id_dir = os.path.abspath("tmp-id-dir") - self.archive_dir = os.path.abspath("tmp-id-archive") - if not os.path.exists(self.id_dir): - os.mkdir(self.id_dir) - if not os.path.exists(self.archive_dir): - os.mkdir(self.archive_dir) + self.id_dir = self.tempdir('id') + self.archive_dir = self.tempdir('id-archive') settings.INTERNET_DRAFT_PATH = self.id_dir settings.INTERNET_DRAFT_ARCHIVE_DIR = self.archive_dir diff --git a/ietf/utils/test_runner.py b/ietf/utils/test_runner.py index 96d366e5f..b28159c78 100644 --- a/ietf/utils/test_runner.py +++ b/ietf/utils/test_runner.py @@ -107,7 +107,6 @@ def safe_destroy_test_db(*args, **kwargs): global test_database_name, old_destroy keepdb = kwargs.get('keepdb', False) if not keepdb: - print " Checking that it's safe to destroy test database..." if settings.DATABASES["default"]["NAME"] != test_database_name: print ' NOT SAFE; Changing settings.DATABASES["default"]["NAME"] from %s to %s' % (settings.DATABASES["default"]["NAME"], test_database_name) settings.DATABASES["default"]["NAME"] = test_database_name @@ -366,6 +365,8 @@ class IetfTestRunner(DiscoverRunner): self.root_dir = os.path.dirname(settings.BASE_DIR) self.coverage_file = os.path.join(self.root_dir, settings.TEST_COVERAGE_MASTER_FILE) super(IetfTestRunner, self).__init__(**kwargs) + if self.parallel: + self.check_coverage = False def setup_test_environment(self, **kwargs): global template_coverage_collection diff --git a/ietf/utils/test_utils.py b/ietf/utils/test_utils.py index dab2f7c65..0e7b1973d 100644 --- a/ietf/utils/test_utils.py +++ b/ietf/utils/test_utils.py @@ -101,8 +101,8 @@ class TestCase(django.test.TestCase): self.assertValidHTML(resp.content) def tempdir(self, label): - slug = slugify(self.__class__.replace('.','-')) - dirname = "tmp-{label}-{slug}".format(**locals()) + slug = slugify(self.__class__.__name__.replace('.','-')) + dirname = "tmp-{label}-{slug}-dir".format(**locals()) path = os.path.abspath(dirname) if not os.path.exists(path): os.mkdir(path) @@ -110,3 +110,5 @@ class TestCase(django.test.TestCase): def __str__(self): return "%s (%s.%s)" % (self._testMethodName, strclass(self.__class__),self._testMethodName) + + \ No newline at end of file