@@ -570,8 +570,85 @@ def test_unicode(self):
570
570
)
571
571
self .assertEqual (resp .status_code , 200 )
572
572
573
- def test_user_defined_stable_version_with_tags (self ):
573
+ def test_user_defined_stable_version_tag_with_tags (self ):
574
+ Version .objects .create (
575
+ project = self .pip ,
576
+ identifier = '0.8.3' ,
577
+ verbose_name = '0.8.3' ,
578
+ active = True ,
579
+ )
574
580
581
+ # A pre-existing active stable tag that was machine created
582
+ Version .objects .create (
583
+ project = self .pip ,
584
+ identifier = 'foo' ,
585
+ type = TAG ,
586
+ verbose_name = 'stable' ,
587
+ active = True ,
588
+ machine = True ,
589
+ )
590
+
591
+ version_post_data = {
592
+ 'branches' : [
593
+ {
594
+ 'identifier' : 'origin/master' ,
595
+ 'verbose_name' : 'master' ,
596
+ },
597
+ ],
598
+ 'tags' : [
599
+ # A new user-defined stable branch
600
+ {
601
+ 'identifier' : '1abc2def3' ,
602
+ 'verbose_name' : 'stable' ,
603
+ },
604
+ {
605
+ 'identifier' : '0.9' ,
606
+ 'verbose_name' : '0.9' ,
607
+ },
608
+ {
609
+ 'identifier' : '0.8.3' ,
610
+ 'verbose_name' : '0.8.3' ,
611
+ },
612
+ ],
613
+ }
614
+
615
+ resp = self .client .post (
616
+ '/api/v2/project/{}/sync_versions/' .format (self .pip .pk ),
617
+ data = json .dumps (version_post_data ),
618
+ content_type = 'application/json' ,
619
+ )
620
+ self .assertEqual (resp .status_code , 200 )
621
+
622
+ # Didn't update to newest tag
623
+ version_9 = Version .objects .get (slug = '0.9' )
624
+ self .assertFalse (version_9 .active )
625
+
626
+ # Did update to user-defined stable version
627
+ version_stable = Version .objects .get (slug = 'stable' )
628
+ self .assertFalse (version_stable .machine )
629
+ self .assertTrue (version_stable .active )
630
+ self .assertEqual (
631
+ '1abc2def3' ,
632
+ self .pip .get_stable_version ().identifier
633
+ )
634
+
635
+ # Check that posting again doesn't change anything from current state.
636
+ resp = self .client .post (
637
+ '/api/v2/project/{}/sync_versions/' .format (self .pip .pk ),
638
+ data = json .dumps (version_post_data ),
639
+ content_type = 'application/json' ,
640
+ )
641
+ self .assertEqual (resp .status_code , 200 )
642
+
643
+ version_stable = Version .objects .get (slug = 'stable' )
644
+ self .assertFalse (version_stable .machine )
645
+ self .assertTrue (version_stable .active )
646
+ self .assertEqual (
647
+ '1abc2def3' ,
648
+ self .pip .get_stable_version ().identifier
649
+ )
650
+
651
+ def test_user_defined_stable_version_branch_with_tags (self ):
575
652
Version .objects .create (
576
653
project = self .pip ,
577
654
identifier = '0.8.3' ,
@@ -583,7 +660,7 @@ def test_user_defined_stable_version_with_tags(self):
583
660
Version .objects .create (
584
661
project = self .pip ,
585
662
identifier = 'foo' ,
586
- type = 'branch' ,
663
+ type = BRANCH ,
587
664
verbose_name = 'stable' ,
588
665
active = True ,
589
666
machine = True ,
@@ -613,11 +690,12 @@ def test_user_defined_stable_version_with_tags(self):
613
690
],
614
691
}
615
692
616
- self .client .post (
693
+ resp = self .client .post (
617
694
'/api/v2/project/{}/sync_versions/' .format (self .pip .pk ),
618
695
data = json .dumps (version_post_data ),
619
696
content_type = 'application/json' ,
620
697
)
698
+ self .assertEqual (resp .status_code , 200 )
621
699
622
700
# Didn't update to newest tag
623
701
version_9 = Version .objects .get (slug = '0.9' )
@@ -627,13 +705,23 @@ def test_user_defined_stable_version_with_tags(self):
627
705
version_stable = Version .objects .get (slug = 'stable' )
628
706
self .assertFalse (version_stable .machine )
629
707
self .assertTrue (version_stable .active )
630
- self .assertEqual ('origin/stable' , self .pip .get_stable_version ().identifier )
708
+ self .assertEqual (
709
+ 'origin/stable' ,
710
+ self .pip .get_stable_version ().identifier
711
+ )
631
712
632
713
# Check that posting again doesn't change anything from current state.
633
- self .client .post (
714
+ resp = self .client .post (
634
715
'/api/v2/project/{}/sync_versions/' .format (self .pip .pk ),
635
716
data = json .dumps (version_post_data ),
636
717
content_type = 'application/json' ,
637
718
)
719
+ self .assertEqual (resp .status_code , 200 )
638
720
639
- self .assertEqual ('origin/stable' , self .pip .get_stable_version ().identifier )
721
+ version_stable = Version .objects .get (slug = 'stable' )
722
+ self .assertFalse (version_stable .machine )
723
+ self .assertTrue (version_stable .active )
724
+ self .assertEqual (
725
+ 'origin/stable' ,
726
+ self .pip .get_stable_version ().identifier
727
+ )
0 commit comments