@@ -302,6 +302,7 @@ def test_update_latest_version_type(self):
302302 )
303303
304304 latest_version = self .pip .versions .get (slug = LATEST )
305+ self .assertIsNone (self .pip .default_branch )
305306 self .assertEqual (latest_version .type , BRANCH )
306307 self .assertEqual (latest_version .identifier , "master" )
307308 self .assertEqual (latest_version .verbose_name , "latest" )
@@ -769,12 +770,36 @@ def test_machine_attr_when_user_define_latest_tag_and_delete_it(self):
769770
770771 # The latest isn't stuck with the previous commit
771772 version_latest = self .pip .versions .get (slug = "latest" )
773+ self .assertIsNone (self .pip .default_branch )
774+ self .assertTrue (version_latest .machine )
772775 self .assertEqual (
773776 "master" ,
774777 version_latest .identifier ,
775778 )
776779 self .assertTrue (version_latest .machine )
777780
781+ # Test with an explicit default branch (tag).
782+ self .pip .default_branch = "default-tag"
783+ self .pip .save ()
784+
785+ tags_data = [
786+ {
787+ "identifier" : "1abc2def3" ,
788+ "verbose_name" : "default-tag" ,
789+ }
790+ ]
791+
792+ sync_versions_task (
793+ self .pip .pk ,
794+ branches_data = branches_data ,
795+ tags_data = tags_data ,
796+ )
797+
798+ version_latest = self .pip .versions .get (slug = "latest" )
799+ self .assertTrue (version_latest .machine )
800+ self .assertEqual (version_latest .identifier , "default-tag" )
801+ self .assertEqual (version_latest .type , TAG )
802+
778803 def test_machine_attr_when_user_define_latest_branch_and_delete_it (self ):
779804 """The user creates a branch named ``latest`` on an existing repo, when
780805 syncing the versions, the RTD's ``latest`` is lost (set to
@@ -802,6 +827,8 @@ def test_machine_attr_when_user_define_latest_branch_and_delete_it(self):
802827
803828 # The branch is the new latest
804829 version_latest = self .pip .versions .get (slug = "latest" )
830+ self .assertIsNone (self .pip .default_branch )
831+ self .assertFalse (version_latest .machine )
805832 self .assertEqual (
806833 "origin/latest" ,
807834 version_latest .identifier ,
@@ -823,12 +850,38 @@ def test_machine_attr_when_user_define_latest_branch_and_delete_it(self):
823850
824851 # The latest isn't stuck with the previous branch
825852 version_latest = self .pip .versions .get (slug = "latest" )
853+ self .assertIsNone (self .pip .default_branch )
854+ self .assertTrue (version_latest .machine )
826855 self .assertEqual (
827856 "master" ,
828857 version_latest .identifier ,
829858 )
830859 self .assertTrue (version_latest .machine )
831860
861+ # Test with an explicit default branch.
862+ branches_data = [
863+ {
864+ "identifier" : "origin/master" ,
865+ "verbose_name" : "master" ,
866+ },
867+ {
868+ "identifier" : "origin/default-branch" ,
869+ "verbose_name" : "default-branch" ,
870+ },
871+ ]
872+ self .pip .default_branch = "default-branch"
873+ self .pip .save ()
874+ sync_versions_task (
875+ self .pip .pk ,
876+ branches_data = branches_data ,
877+ tags_data = [],
878+ )
879+
880+ version_latest = self .pip .versions .get (slug = "latest" )
881+ self .assertTrue (version_latest .machine )
882+ self .assertEqual (version_latest .identifier , "default-branch" )
883+ self .assertEqual (version_latest .type , BRANCH )
884+
832885 def test_deletes_version_with_same_identifier (self ):
833886 branches_data = [
834887 {
0 commit comments