File tree 2 files changed +23
-2
lines changed
2 files changed +23
-2
lines changed Original file line number Diff line number Diff line change @@ -570,9 +570,10 @@ def clean_domain(self):
570
570
571
571
def clean_canonical (self ):
572
572
canonical = self .cleaned_data ['canonical' ]
573
+ _id = self .initial .get ('id' )
573
574
if canonical and Domain .objects .filter (
574
- project = self .project , canonical = True ). exclude (
575
- domain = self . cleaned_data [ 'domain' ] ).exists ():
575
+ project = self .project , canonical = True
576
+ ). exclude ( pk = _id ).exists ():
576
577
raise forms .ValidationError (
577
578
_ ('Only 1 Domain can be canonical at a time.' ))
578
579
return canonical
Original file line number Diff line number Diff line change @@ -81,6 +81,26 @@ def test_https(self):
81
81
project = self .project )
82
82
self .assertFalse (form .is_valid ())
83
83
84
+ def test_canonical_change (self ):
85
+ """Make sure canonical can be properly changed"""
86
+ form = DomainForm ({'domain' : 'example.com' , 'canonical' : True },
87
+ project = self .project )
88
+ self .assertTrue (form .is_valid ())
89
+ domain = form .save ()
90
+ self .assertEqual (domain .domain , 'example.com' )
91
+
92
+ form = DomainForm ({'domain' : 'example2.com' , 'canonical' : True },
93
+ project = self .project )
94
+ self .assertFalse (form .is_valid ())
95
+ self .assertEqual (form .errors ['canonical' ][0 ], 'Only 1 Domain can be canonical at a time.' )
96
+
97
+ form = DomainForm ({'domain' : 'example2.com' , 'canonical' : True },
98
+ project = self .project ,
99
+ instance = domain )
100
+ self .assertTrue (form .is_valid ())
101
+ domain = form .save ()
102
+ self .assertEqual (domain .domain , 'example2.com' )
103
+
84
104
85
105
class TestAPI (TestCase ):
86
106
You can’t perform that action at this time.
0 commit comments