@@ -49,7 +49,8 @@ def setUp(self):
49
49
commit_files (['page.html' , 'file.txt' , 'dir/index.html' ])
50
50
51
51
def _test_state (self , expected_message , expected_versions ,
52
- alias_type = AliasType .symlink , directory = '.' ):
52
+ alias_type = AliasType .symlink , directory = '.' , * ,
53
+ allow_extra = False ):
53
54
message = check_output (['git' , 'log' , '-1' , '--pretty=%B' ]).rstrip ()
54
55
self .assertRegex (message , expected_message )
55
56
@@ -68,7 +69,7 @@ def _test_state(self, expected_message, expected_versions,
68
69
a + '/dir/index.html' }
69
70
if this_alias_type == AliasType .copy :
70
71
files .add (a + '/file.txt' )
71
- assertDirectory (directory , files )
72
+ assertDirectory (directory , files , allow_extra = allow_extra )
72
73
73
74
with open (os .path .join (directory , 'versions.json' )) as f :
74
75
self .assertEqual (list (versions .Versions .loads (f .read ())),
@@ -83,6 +84,8 @@ def setUp(self):
83
84
self .cfg ['site_dir' ] = os .path .join (self .cfg ['site_dir' ], 'site' )
84
85
85
86
def _mock_build (self ):
87
+ if os .path .exists (self .cfg ['site_dir' ]):
88
+ shutil .rmtree (self .cfg ['site_dir' ])
86
89
copytree (self .stage , self .cfg ['site_dir' ])
87
90
88
91
def _test_deploy (self , expected_message = None ,
@@ -227,6 +230,21 @@ def test_deploy_prefix(self):
227
230
versions .VersionInfo ('1.0' , aliases = ['latest' ])
228
231
], directory = 'prefix' )
229
232
233
+ def test_mixed_deploy_prefixes (self ):
234
+ with commands .deploy (self .cfg , '1.0' , aliases = ['latest' ]):
235
+ self ._mock_build ()
236
+ with commands .deploy (self .cfg , '1.0' , aliases = ['latest' ],
237
+ deploy_prefix = 'prefix' ):
238
+ self ._mock_build ()
239
+
240
+ check_call_silent (['git' , 'checkout' , 'gh-pages' ])
241
+ self ._test_deploy (expected_versions = [
242
+ versions .VersionInfo ('1.0' , aliases = ['latest' ])
243
+ ], expected_message = '.*' , allow_extra = True )
244
+ self ._test_deploy (expected_versions = [
245
+ versions .VersionInfo ('1.0' , aliases = ['latest' ])
246
+ ], directory = 'prefix' )
247
+
230
248
def test_overwrite_version (self ):
231
249
with git_utils .Commit ('gh-pages' , 'add versions.json' ) as commit :
232
250
commit .add_file (git_utils .FileInfo (
@@ -357,6 +375,18 @@ def test_deploy_prefix(self):
357
375
check_call_silent (['git' , 'checkout' , 'gh-pages' ])
358
376
self ._test_delete (directory = 'prefix' )
359
377
378
+ def test_mixed_deploy_prefixes (self ):
379
+ self ._deploy ()
380
+ self ._deploy (deploy_prefix = 'prefix' )
381
+ commands .delete (['1.0' ], deploy_prefix = 'prefix' )
382
+ check_call_silent (['git' , 'checkout' , 'gh-pages' ])
383
+
384
+ self ._test_delete (expected_versions = [
385
+ versions .VersionInfo ('2.0' ),
386
+ versions .VersionInfo ('1.0' , aliases = ['stable' ]),
387
+ ], expected_message = '.*' , allow_extra = True )
388
+ self ._test_delete (directory = 'prefix' )
389
+
360
390
def test_deploy_prefix_delete_all (self ):
361
391
self ._deploy (deploy_prefix = 'prefix' )
362
392
commands .delete (all = True , deploy_prefix = 'prefix' )
@@ -367,6 +397,22 @@ def test_deploy_prefix_delete_all(self):
367
397
r'^Removed everything in prefix with mike \S+$' )
368
398
assertDirectory ('prefix' , set ())
369
399
400
+ def test_mixed_deploy_prefixes_delete_all (self ):
401
+ self ._deploy ()
402
+ self ._deploy (deploy_prefix = 'prefix' )
403
+ commands .delete (all = True , deploy_prefix = 'prefix' )
404
+ check_call_silent (['git' , 'checkout' , 'gh-pages' ])
405
+
406
+ self ._test_delete (expected_versions = [
407
+ versions .VersionInfo ('2.0' ),
408
+ versions .VersionInfo ('1.0' , aliases = ['stable' ]),
409
+ ], expected_message = '.*' , allow_extra = True )
410
+
411
+ message = check_output (['git' , 'log' , '-1' , '--pretty=%B' ]).rstrip ()
412
+ self .assertRegex (message ,
413
+ r'^Removed everything in prefix with mike \S+$' )
414
+ assertDirectory ('prefix' , set ())
415
+
370
416
def test_delete_invalid (self ):
371
417
self ._deploy ()
372
418
self .assertRaises (ValueError , commands .delete )
@@ -510,6 +556,16 @@ def test_deploy_prefix(self):
510
556
check_call_silent (['git' , 'checkout' , 'gh-pages' ])
511
557
self ._test_alias (directory = 'prefix' )
512
558
559
+ def test_mixed_deploy_prefixes (self ):
560
+ self ._deploy ()
561
+ self ._deploy (deploy_prefix = 'prefix' )
562
+ commands .alias (self .cfg , '1.0' , ['greatest' ], deploy_prefix = 'prefix' )
563
+ check_call_silent (['git' , 'checkout' , 'gh-pages' ])
564
+
565
+ self ._test_alias (expected_aliases = [], expected_message = '.*' ,
566
+ allow_extra = True )
567
+ self ._test_alias (directory = 'prefix' )
568
+
513
569
def test_alias_invalid_version (self ):
514
570
self ._deploy ()
515
571
self .assertRaises (ValueError , commands .alias , self .cfg , '2.0' ,
@@ -568,6 +624,20 @@ def test_deploy_prefix(self):
568
624
{'hidden' : True }
569
625
)
570
626
627
+ def test_mixed_deploy_prefixes (self ):
628
+ self ._commit_versions (versions .VersionInfo (
629
+ '1.0' , properties = {'foo' : True }
630
+ ))
631
+ self ._commit_versions (versions .VersionInfo (
632
+ '1.0' , properties = {'bar' : True }
633
+ ), deploy_prefix = 'prefix' )
634
+
635
+ self .assertEqual (commands .get_property ('1.0' , '' ), {'foo' : True })
636
+ self .assertEqual (
637
+ commands .get_property ('1.0' , '' , deploy_prefix = 'prefix' ),
638
+ {'bar' : True }
639
+ )
640
+
571
641
def test_invalid_version (self ):
572
642
self ._commit_versions (versions .VersionInfo ('1.0' ))
573
643
with self .assertRaises (ValueError ):
@@ -652,6 +722,23 @@ def test_deploy_prefix(self):
652
722
versions .VersionInfo ('1.0' , properties = {'foo' : {'bar' : True }}),
653
723
], directory = 'prefix' )
654
724
725
+ def test_mixed_deploy_prefixes (self ):
726
+ self ._commit_versions (versions .VersionInfo (
727
+ '1.0' , properties = {'foo' : {'bar' : True }}
728
+ ))
729
+ self ._commit_versions (versions .VersionInfo ('1.0' ),
730
+ deploy_prefix = 'prefix' )
731
+ commands .set_properties ('1.0' , [('zoo.goat' , True )],
732
+ deploy_prefix = 'prefix' )
733
+
734
+ check_call_silent (['git' , 'checkout' , 'gh-pages' ])
735
+ self ._test_set_properties ([
736
+ versions .VersionInfo ('1.0' , properties = {'foo' : {'bar' : True }}),
737
+ ])
738
+ self ._test_set_properties ([
739
+ versions .VersionInfo ('1.0' , properties = {'zoo' : {'goat' : True }}),
740
+ ], directory = 'prefix' )
741
+
655
742
def test_invalid_version (self ):
656
743
self ._commit_versions (versions .VersionInfo ('1.0' ))
657
744
with self .assertRaises (ValueError ):
@@ -670,25 +757,26 @@ def _deploy(self, branch='gh-pages', deploy_prefix=''):
670
757
deploy_prefix = deploy_prefix ):
671
758
pass
672
759
673
- def _test_retitle (self , expected_message = None , directory = '.' ):
760
+ def _test_retitle (self , expected_message = None ,
761
+ expected_version = versions .VersionInfo ('1.0' , '1.0.1' ),
762
+ directory = '.' , * , allow_extra = False ):
674
763
message = check_output (['git' , 'log' , '-1' , '--pretty=%B' ]).rstrip ()
675
- if expected_message :
676
- self .assertEqual (message , expected_message )
677
- else :
678
- self .assertRegex (
679
- message ,
680
- r'^Set title of \S+ to 1\.0\.1( in .*)? with mike \S+$'
764
+ if not expected_message :
765
+ expected_message = (
766
+ r'^Set title of {} to {}( in .*)? with mike \S+$'
767
+ .format (re .escape (str (expected_version .version )),
768
+ re .escape (expected_version .title ))
681
769
)
770
+ self .assertRegex (message , expected_message )
682
771
683
772
assertDirectory (directory , {
684
773
'versions.json' ,
685
774
'1.0' ,
686
775
'1.0/file.txt'
687
- })
776
+ }, allow_extra = allow_extra )
688
777
with open (os .path .join (directory , 'versions.json' )) as f :
689
- self .assertEqual (list (versions .Versions .loads (f .read ())), [
690
- versions .VersionInfo ('1.0' , '1.0.1' ),
691
- ])
778
+ self .assertEqual (list (versions .Versions .loads (f .read ())),
779
+ [expected_version ])
692
780
693
781
def test_retitle (self ):
694
782
self ._deploy ()
@@ -714,6 +802,16 @@ def test_deploy_prefix(self):
714
802
check_call_silent (['git' , 'checkout' , 'gh-pages' ])
715
803
self ._test_retitle (directory = 'prefix' )
716
804
805
+ def test_mixed_deploy_prefixes (self ):
806
+ self ._deploy ()
807
+ self ._deploy (deploy_prefix = 'prefix' )
808
+ commands .retitle ('1.0' , '1.0.1' , deploy_prefix = 'prefix' )
809
+ check_call_silent (['git' , 'checkout' , 'gh-pages' ])
810
+
811
+ self ._test_retitle (expected_version = versions .VersionInfo ('1.0' ),
812
+ expected_message = '.*' , allow_extra = True )
813
+ self ._test_retitle (directory = 'prefix' )
814
+
717
815
def test_retitle_invalid (self ):
718
816
self ._deploy ()
719
817
self .assertRaises (ValueError , commands .retitle , '2.0' , '2.0.2' )
@@ -785,6 +883,15 @@ def test_deploy_prefix(self):
785
883
check_call_silent (['git' , 'checkout' , 'gh-pages' ])
786
884
self ._test_default (directory = 'prefix' )
787
885
886
+ def test_mixed_deploy_prefixes (self ):
887
+ self ._deploy ()
888
+ self ._deploy (deploy_prefix = 'prefix' )
889
+ commands .set_default ('1.0' , deploy_prefix = 'prefix' )
890
+ check_call_silent (['git' , 'checkout' , 'gh-pages' ])
891
+
892
+ self .assertFalse (os .path .exists ('./index.html' ))
893
+ self ._test_default (directory = 'prefix' )
894
+
788
895
def test_set_invalid_default (self ):
789
896
self ._deploy ()
790
897
self .assertRaises (ValueError , commands .set_default , '2.0' )
0 commit comments