@ -48,10 +48,10 @@ class GclUnittest(GclTestsBase):
' GetFilesNotInCL ' , ' GetInfoDir ' , ' GetIssueDescription ' ,
' GetModifiedFiles ' , ' GetRepositoryRoot ' ,
' GetSVNFileProperty ' , ' Help ' , ' IGNORE_PATHS ' , ' IsSVNMoved ' ,
' Lint ' , ' LoadChangelistInfo ' , ' LoadChangelistInfo ForMultiple' ,
' Lint ' , ' LoadChangelistInfo ForMultiple' ,
' MISSING_TEST_MSG ' , ' Opened ' , ' PresubmitCL ' , ' ReadFile ' ,
' REPOSITORY_ROOT ' , ' RunShell ' ,
' RunShellWithReturnCode ' , ' S EPARATOR' , ' S endToRietveld' , ' TryChange ' ,
' RunShellWithReturnCode ' , ' S endToRietveld' , ' TryChange ' ,
' UnknownFiles ' , ' UploadCL ' , ' Warn ' , ' WriteFile ' ,
' gclient ' , ' getpass ' , ' main ' , ' os ' , ' random ' , ' re ' ,
' shutil ' , ' string ' , ' subprocess ' , ' sys ' , ' tempfile ' ,
@ -95,25 +95,71 @@ class GclUnittest(GclTestsBase):
class ChangeInfoUnittest ( GclTestsBase ) :
def setUp ( self ) :
GclTestsBase . setUp ( self )
self . mox . StubOutWithMock ( gcl , ' GetChangelistInfoFile ' )
self . mox . StubOutWithMock ( gcl . os . path , ' exists ' )
self . mox . StubOutWithMock ( gcl , ' ReadFile ' )
self . mox . StubOutWithMock ( gcl , ' WriteFile ' )
def testChangeInfoMembers ( self ) :
members = [
' CloseIssue ' , ' Delete ' , ' FileList ' , ' MissingTests ' , ' Save ' ,
' CloseIssue ' , ' Delete ' , ' FileList ' , ' Load' , ' MissingTests' , ' Save ' ,
' UpdateRietveldDescription ' , ' description ' , ' files ' , ' issue ' , ' name ' ,
' patch '
' patch ' , ' patchset ' ,
]
# If this test fails, you should add the relevant test.
self . compareMembers ( gcl . ChangeInfo ( ) , members )
self . compareMembers ( gcl . ChangeInfo ( ' ' , 0 , 0 , ' ' , None ) , members )
def testChangeInfoBase ( self ) :
files = [ ( ' M ' , ' foo ' ) , ( ' A ' , ' bar ' ) ]
o = gcl . ChangeInfo ( ' name2 ' , ' issue2 ' , ' description2 ' , files )
self . mox . ReplayAll ( )
o = gcl . ChangeInfo ( ' name2 ' , ' 42 ' , ' 53 ' , ' description2 ' , files )
self . assertEquals ( o . name , ' name2 ' )
self . assertEquals ( o . issue , ' issue2 ' )
self . assertEquals ( o . issue , 42 )
self . assertEquals ( o . patchset , 53 )
self . assertEquals ( o . description , ' description2 ' )
self . assertEquals ( o . files , files )
self . assertEquals ( o . patch , None )
self . assertEquals ( o . FileList ( ) , [ ' foo ' , ' bar ' ] )
def testLoadWithIssue ( self ) :
description = [ " This is some description. " , " force an extra separator. " ]
gcl . GetChangelistInfoFile ( ' bleh ' ) . AndReturn ( ' bleeeh ' )
gcl . os . path . exists ( ' bleeeh ' ) . AndReturn ( True )
gcl . ReadFile ( ' bleeeh ' ) . AndReturn (
gcl . ChangeInfo . _SEPARATOR . join ( [ " 42,53 " , " G b.cc " ] + description ) )
self . mox . ReplayAll ( )
change_info = gcl . ChangeInfo . Load ( ' bleh ' , True , False )
self . assertEquals ( change_info . name , ' bleh ' )
self . assertEquals ( change_info . issue , 42 )
self . assertEquals ( change_info . patchset , 53 )
self . assertEquals ( change_info . description ,
gcl . ChangeInfo . _SEPARATOR . join ( description ) )
self . assertEquals ( change_info . files , [ ( ' G ' , ' b.cc ' ) ] )
def testLoadEmpty ( self ) :
gcl . GetChangelistInfoFile ( ' bleh ' ) . AndReturn ( ' bleeeh ' )
gcl . os . path . exists ( ' bleeeh ' ) . AndReturn ( True )
gcl . ReadFile ( ' bleeeh ' ) . AndReturn (
gcl . ChangeInfo . _SEPARATOR . join ( [ " " , " " , " " ] ) )
self . mox . ReplayAll ( )
change_info = gcl . ChangeInfo . Load ( ' bleh ' , True , False )
self . assertEquals ( change_info . name , ' bleh ' )
self . assertEquals ( change_info . issue , 0 )
self . assertEquals ( change_info . patchset , 0 )
self . assertEquals ( change_info . description , " " )
self . assertEquals ( change_info . files , [ ] )
def testSaveEmpty ( self ) :
gcl . GetChangelistInfoFile ( ' ' ) . AndReturn ( ' foo ' )
gcl . WriteFile ( ' foo ' , gcl . ChangeInfo . _SEPARATOR . join ( [ ' 0, 0 ' , ' ' , ' ' ] ) )
self . mox . ReplayAll ( )
change_info = gcl . ChangeInfo ( ' ' , 0 , 0 , ' ' , None )
change_info . Save ( )
class UploadCLUnittest ( GclTestsBase ) :
def setUp ( self ) :
@ -132,9 +178,9 @@ class UploadCLUnittest(GclTestsBase):
self . mox . StubOutWithMock ( gcl , ' TryChange ' )
def testNew ( self ) :
change_info = gcl . ChangeInfo ( ' naame ' , ' iissue ' , ' deescription ' ,
change_info = gcl . ChangeInfo ( ' naame ' , 1 , 0 , ' deescription ' ,
[ ' aa ' , ' bb ' ] )
change_info . Save = self . mox . CreateMockAnything ( )
self . mox . StubOutWithMock ( change_info , ' Save ' )
args = [ ' --foo=bar ' ]
change_info . Save ( )
gcl . DoPresubmitChecks ( change_info , committing = False ) . AndReturn ( True )
@ -143,19 +189,17 @@ class UploadCLUnittest(GclTestsBase):
gcl . os . chdir ( gcl . GetRepositoryRoot ( ) . AndReturn ( None ) )
gcl . GenerateDiff ( change_info . FileList ( ) )
gcl . upload . RealMain ( [ ' upload.py ' , ' -y ' , ' --server=my_server ' , ' --foo=bar ' ,
" --message= ' ' " , ' --issue= iissue ' ] , change_info . patch ) . AndReturn ( ( " 1 " ,
" --message= ' ' " , ' --issue= 1 ' ] , change_info . patch ) . AndReturn ( ( " 1 " ,
" 2 " ) )
gcl . SendToRietveld ( " /lint/issue %s _ %s " % ( ' 1 ' , ' 2 ' ) , timeout = 0.5 )
gcl . GetCodeReviewSetting ( ' TRY_ON_UPLOAD ' ) . AndReturn ( ' True ' )
gcl . TryChange ( change_info ,
[ ' --issue ' , ' 1 ' , ' --patchset ' , ' 2 ' ] ,
swallow_exception = True )
gcl . TryChange ( change_info , [ ] , swallow_exception = True )
gcl . os . chdir ( ' somewhere ' )
self . mox . ReplayAll ( )
gcl . UploadCL ( change_info , args )
def testServerOverride ( self ) :
change_info = gcl . ChangeInfo ( ' naame ' , ' ' , ' deescription ' ,
change_info = gcl . ChangeInfo ( ' naame ' , 0 , 0 , ' deescription ' ,
[ ' aa ' , ' bb ' ] )
change_info . Save = self . mox . CreateMockAnything ( )
args = [ ' --server=a ' ]
@ -179,7 +223,7 @@ class UploadCLUnittest(GclTestsBase):
gcl . UploadCL ( change_info , args )
def testNoTry ( self ) :
change_info = gcl . ChangeInfo ( ' naame ' , ' ' , ' deescription ' ,
change_info = gcl . ChangeInfo ( ' naame ' , 0 , 0 , ' deescription ' ,
[ ' aa ' , ' bb ' ] )
change_info . Save = self . mox . CreateMockAnything ( )
args = [ ' --no-try ' ]
@ -203,7 +247,7 @@ class UploadCLUnittest(GclTestsBase):
gcl . UploadCL ( change_info , args )
def testNormal ( self ) :
change_info = gcl . ChangeInfo ( ' naame ' , ' ' , ' deescription ' ,
change_info = gcl . ChangeInfo ( ' naame ' , 0 , 0 , ' deescription ' ,
[ ' aa ' , ' bb ' ] )
self . mox . StubOutWithMock ( change_info , ' Save ' )
args = [ ]
@ -223,12 +267,13 @@ class UploadCLUnittest(GclTestsBase):
gcl . os . remove ( ' descfile ' )
gcl . SendToRietveld ( " /lint/issue %s _ %s " % ( ' 1 ' , ' 2 ' ) , timeout = 0.5 )
gcl . GetCodeReviewSetting ( ' TRY_ON_UPLOAD ' ) . AndReturn ( ' True ' )
gcl . TryChange ( change_info ,
[ ' --issue ' , ' 1 ' , ' --patchset ' , ' 2 ' ] ,
swallow_exception = True )
gcl . TryChange ( change_info , [ ] , swallow_exception = True )
gcl . os . chdir ( ' somewhere ' )
self . mox . ReplayAll ( )
gcl . UploadCL ( change_info , args )
self . assertEquals ( change_info . issue , 1 )
self . assertEquals ( change_info . patchset , 2 )
if __name__ == ' __main__ ' :