@@ -51,23 +51,26 @@ def get_filesystem(path, top_level_path=None):
51
51
return fs
52
52
53
53
54
- class TempSiterootCase (object ):
54
+ TEMP_SITE_ROOT = tempfile .mkdtemp (suffix = 'siteroot' )
55
+ TEMP_DOCROOT = os .path .join (TEMP_SITE_ROOT , 'user_builds' )
55
56
56
- """Override SITE_ROOT and patch necessary pieces to inspect symlink structure
57
+
58
+ @override_settings (
59
+ SITE_ROOT = TEMP_SITE_ROOT ,
60
+ DOCROOT = TEMP_DOCROOT ,
61
+ )
62
+ class TempSiteRootTestCase (TestCase ):
63
+
64
+ """
65
+ Override SITE_ROOT and patch necessary pieces to inspect symlink structure.
57
66
58
67
This uses some patches and overidden settings to build out symlinking in a
59
68
temporary path. Each test is therefore isolated, and cleanup will remove
60
69
these paths after the test case wraps up.
61
-
62
- And subclasses that implement :py:class:`TestCase` should also make use of
63
- :py:func:`override_settings`.
64
70
"""
65
71
66
72
def setUp (self ):
67
73
self .maxDiff = None
68
- self .site_root = os .path .realpath (tempfile .mkdtemp (suffix = 'siteroot' ))
69
- settings .SITE_ROOT = self .site_root
70
- settings .DOCROOT = os .path .join (settings .SITE_ROOT , 'user_builds' )
71
74
self .mocks = {
72
75
'PublicSymlinkBase.CNAME_ROOT' : mock .patch (
73
76
'readthedocs.core.symlink.PublicSymlinkBase.CNAME_ROOT' ,
@@ -115,16 +118,16 @@ def setUp(self):
115
118
)
116
119
117
120
def tearDown (self ):
118
- shutil .rmtree (self . site_root )
121
+ shutil .rmtree (settings . SITE_ROOT )
119
122
120
123
def assertFilesystem (self , filesystem ):
121
124
"""
122
125
Creates a nested dictionary that represents the folder structure of rootdir
123
126
"""
124
- self .assertEqual (filesystem , get_filesystem (self . site_root ))
127
+ self .assertEqual (filesystem , get_filesystem (settings . SITE_ROOT ))
125
128
126
129
127
- class BaseSymlinkCnames (TempSiterootCase ):
130
+ class BaseSymlinkCnames (object ):
128
131
129
132
def setUp (self ):
130
133
super (BaseSymlinkCnames , self ).setUp ()
@@ -290,19 +293,17 @@ def test_symlink_cname_dont_link_missing_domains(self):
290
293
self .assertFilesystem (filesystem )
291
294
292
295
293
- @override_settings ()
294
- class TestPublicSymlinkCnames (BaseSymlinkCnames , TestCase ):
296
+ class TestPublicSymlinkCnames (BaseSymlinkCnames , TempSiteRootTestCase ):
295
297
privacy = 'public'
296
298
symlink_class = PublicSymlink
297
299
298
300
299
- @override_settings ()
300
- class TestPrivateSymlinkCnames (BaseSymlinkCnames , TestCase ):
301
+ class TestPrivateSymlinkCnames (BaseSymlinkCnames , TempSiteRootTestCase ):
301
302
privacy = 'private'
302
303
symlink_class = PrivateSymlink
303
304
304
305
305
- class BaseSubprojects (TempSiterootCase ):
306
+ class BaseSubprojects (object ):
306
307
307
308
def setUp (self ):
308
309
super (BaseSubprojects , self ).setUp ()
@@ -503,19 +504,17 @@ def test_remove_subprojects(self):
503
504
self .assertFilesystem (filesystem )
504
505
505
506
506
- @override_settings ()
507
- class TestPublicSubprojects (BaseSubprojects , TestCase ):
507
+ class TestPublicSubprojects (BaseSubprojects , TempSiteRootTestCase ):
508
508
privacy = 'public'
509
509
symlink_class = PublicSymlink
510
510
511
511
512
- @override_settings ()
513
- class TestPrivateSubprojects (BaseSubprojects , TestCase ):
512
+ class TestPrivateSubprojects (BaseSubprojects , TempSiteRootTestCase ):
514
513
privacy = 'private'
515
514
symlink_class = PrivateSymlink
516
515
517
516
518
- class BaseSymlinkTranslations (TempSiterootCase ):
517
+ class BaseSymlinkTranslations (object ):
519
518
520
519
def setUp (self ):
521
520
super (BaseSymlinkTranslations , self ).setUp ()
@@ -757,19 +756,17 @@ def test_remove_language(self):
757
756
self .assertFilesystem (filesystem )
758
757
759
758
760
- @override_settings ()
761
- class TestPublicSymlinkTranslations (BaseSymlinkTranslations , TestCase ):
759
+ class TestPublicSymlinkTranslations (BaseSymlinkTranslations , TempSiteRootTestCase ):
762
760
privacy = 'public'
763
761
symlink_class = PublicSymlink
764
762
765
763
766
- @override_settings ()
767
- class TestPrivateSymlinkTranslations (BaseSymlinkTranslations , TestCase ):
764
+ class TestPrivateSymlinkTranslations (BaseSymlinkTranslations , TempSiteRootTestCase ):
768
765
privacy = 'private'
769
766
symlink_class = PrivateSymlink
770
767
771
768
772
- class BaseSymlinkSingleVersion (TempSiterootCase ):
769
+ class BaseSymlinkSingleVersion (object ):
773
770
774
771
def setUp (self ):
775
772
super (BaseSymlinkSingleVersion , self ).setUp ()
@@ -834,19 +831,17 @@ def test_symlink_single_version_missing(self):
834
831
self .assertFilesystem (filesystem )
835
832
836
833
837
- @override_settings ()
838
- class TestPublicSymlinkSingleVersion (BaseSymlinkSingleVersion , TestCase ):
834
+ class TestPublicSymlinkSingleVersion (BaseSymlinkSingleVersion , TempSiteRootTestCase ):
839
835
privacy = 'public'
840
836
symlink_class = PublicSymlink
841
837
842
838
843
- @override_settings ()
844
- class TestPublicSymlinkSingleVersion (BaseSymlinkSingleVersion , TestCase ):
839
+ class TestPublicSymlinkSingleVersion (BaseSymlinkSingleVersion , TempSiteRootTestCase ):
845
840
privacy = 'private'
846
841
symlink_class = PrivateSymlink
847
842
848
843
849
- class BaseSymlinkVersions (TempSiterootCase ):
844
+ class BaseSymlinkVersions (object ):
850
845
851
846
def setUp (self ):
852
847
super (BaseSymlinkVersions , self ).setUp ()
@@ -962,20 +957,17 @@ def test_symlink_other_versions(self):
962
957
self .assertFilesystem (filesystem )
963
958
964
959
965
- @override_settings ()
966
- class TestPublicSymlinkVersions (BaseSymlinkVersions , TestCase ):
960
+ class TestPublicSymlinkVersions (BaseSymlinkVersions , TempSiteRootTestCase ):
967
961
privacy = 'public'
968
962
symlink_class = PublicSymlink
969
963
970
964
971
- @override_settings ()
972
- class TestPrivateSymlinkVersions (BaseSymlinkVersions , TestCase ):
965
+ class TestPrivateSymlinkVersions (BaseSymlinkVersions , TempSiteRootTestCase ):
973
966
privacy = 'private'
974
967
symlink_class = PrivateSymlink
975
968
976
969
977
- @override_settings ()
978
- class TestPublicSymlinkUnicode (TempSiterootCase , TestCase ):
970
+ class TestPublicSymlinkUnicode (TempSiteRootTestCase ):
979
971
980
972
def setUp (self ):
981
973
super (TestPublicSymlinkUnicode , self ).setUp ()
@@ -1040,8 +1032,7 @@ def test_symlink_broadcast_calls_on_project_save(self):
1040
1032
)
1041
1033
1042
1034
1043
- @override_settings ()
1044
- class TestPublicPrivateSymlink (TempSiterootCase , TestCase ):
1035
+ class TestPublicPrivateSymlink (TempSiteRootTestCase ):
1045
1036
1046
1037
def setUp (self ):
1047
1038
super (TestPublicPrivateSymlink , self ).setUp ()
0 commit comments