@@ -54,7 +54,7 @@ def connect(self):
54
54
self ._did_connect = True
55
55
56
56
def delete (self , * args , ** kwarg ):
57
- self ._did_delete = (args , kwarg )
57
+ self ._did_delete = (tuple ( reversed ( args )) , kwarg )
58
58
59
59
def create (self , * args , ** kwarg ):
60
60
self ._did_create = (args , kwarg )
@@ -163,6 +163,7 @@ def setup_args(self, d, args={}):
163
163
'--tracking' : 'master' ,
164
164
'--alone' : False ,
165
165
'--add' : False ,
166
+ '--clone' : False ,
166
167
'<name>' : None ,
167
168
'<branch>' : None ,
168
169
'<target>' : self .target ,
@@ -240,7 +241,6 @@ def main_fork(self, repo=None, rc=0, args={}):
240
241
assert rc == main (self .setup_args ({
241
242
'fork' : True ,
242
243
'<user>/<repo>' : repo ,
243
- '--clone' : True ,
244
244
'--path' : self .tempdir .name
245
245
}, args )), "Non {} result for fork" .format (rc )
246
246
return RepositoryService ._current ._did_fork
@@ -460,6 +460,10 @@ def action_fork(self, cassette_name, local_namespace, remote_namespace, reposito
460
460
with self .recorder .use_cassette ('_' .join (['test' , self .service .name , cassette_name ])):
461
461
self .service .connect ()
462
462
self .service .fork (remote_namespace , repository , clone = True )
463
+ # emulate the outcome of the git actions
464
+ self .service .repository .create_remote ('upstream' , url = remote_slug )
465
+ self .service .repository .create_remote ('all' , url = local_slug )
466
+ self .service .repository .create_remote (self .service .name , url = local_slug )
463
467
464
468
def action_fork__no_clone (self , cassette_name , local_namespace , remote_namespace , repository ):
465
469
# hijack subprocess call
@@ -487,6 +491,10 @@ def action_fork__no_clone(self, cassette_name, local_namespace, remote_namespace
487
491
with self .recorder .use_cassette ('_' .join (['test' , self .service .name , cassette_name ])):
488
492
self .service .connect ()
489
493
self .service .fork (remote_namespace , repository , clone = False )
494
+ # emulate the outcome of the git actions
495
+ self .service .repository .create_remote ('upstream' , url = remote_slug )
496
+ self .service .repository .create_remote ('all' , url = local_slug )
497
+ self .service .repository .create_remote (self .service .name , url = local_slug )
490
498
491
499
def action_clone (self , cassette_name , namespace , repository ):
492
500
# hijack subprocess call
@@ -511,6 +519,8 @@ def action_clone(self, cassette_name, namespace, repository):
511
519
with self .recorder .use_cassette ('_' .join (['test' , self .service .name , cassette_name ])):
512
520
self .service .connect ()
513
521
self .service .clone (namespace , repository )
522
+ self .service .repository .create_remote ('all' , url = local_slug )
523
+ self .service .repository .create_remote (self .service .name , url = local_slug )
514
524
515
525
def action_create (self , cassette_name , namespace , repository ):
516
526
with self .recorder .use_cassette ('_' .join (['test' , self .service .name , cassette_name ])):
@@ -579,12 +589,57 @@ def action_request_list(self, cassette_name, namespace, repository, rq_list_data
579
589
for i , rq in enumerate (rq_list_data ):
580
590
assert requests [i ] == rq
581
591
582
- def action_request_fetch (self , cassette_name , namespace , repository , request , pull = False ):
592
+ def action_request_fetch (self , cassette_name , namespace , repository , request , pull = False , fail = False ):
593
+ local_slug = self .service .format_path (namespace = namespace , repository = repository , rw = False )
583
594
with self .recorder .use_cassette ('_' .join (['test' , self .service .name , cassette_name ])):
584
- self .service .connect ()
585
- self .service .clone (namespace , repository , rw = False )
586
- self .service .request_fetch (repository , namespace , request )
587
- assert self .repository .branches [- 1 ].name == 'request/{}' .format (request )
595
+ with self .mockup_git (namespace , repository ):
596
+ self .set_mock_popen_commands ([
597
+ ('git remote add all {}' .format (local_slug ), b'' , b'' , 0 ),
598
+ ('git remote add {} {}' .format (self .service .name , local_slug ), b'' , b'' , 0 ),
599
+ ('git version' , b'git version 2.8.0' , b'' , 0 ),
600
+ ('git pull --progress -v {} master' .format (self .service .name ), b'' , '\n ' .join ([
601
+ 'POST git-upload-pack (140 bytes)' ,
602
+ 'remote: Counting objects: 8318, done.' ,
603
+ 'remote: Compressing objects: 100% (3/3), done.' ,
604
+ 'remote: Total 8318 (delta 0), reused 0 (delta 0), pack-reused 8315' ,
605
+ 'Receiving objects: 100% (8318/8318), 3.59 MiB | 974.00 KiB/s, done.' ,
606
+ 'Resolving deltas: 100% (5126/5126), done.' ,
607
+ 'From {}:{}/{}' .format (self .service .fqdn , namespace , repository ),
608
+ ' * branch master -> FETCH_HEAD' ,
609
+ ' * [new branch] master -> {}/master' .format (self .service .name )]).encode ('utf-8' ),
610
+ 0 ),
611
+ ('git version' , b'git version 2.8.0' , b'' , 0 ),
612
+ ('git fetch --progress -v {0} pull/{1}/head:request/{1}' .format (self .service .name , request ), b'' , '\n ' .join ([
613
+ 'POST git-upload-pack (140 bytes)' ,
614
+ 'remote: Counting objects: 8318, done.' ,
615
+ 'remote: Compressing objects: 100% (3/3), done.' ,
616
+ 'remote: Total 8318 (delta 0), reused 0 (delta 0), pack-reused 8315' ,
617
+ 'Receiving objects: 100% (8318/8318), 3.59 MiB | 974.00 KiB/s, done.' ,
618
+ 'Resolving deltas: 100% (5126/5126), done.' ,
619
+ 'From {}:{}/{}' .format (self .service .fqdn , namespace , repository ),
620
+ ' * [new branch] master -> request/{}' .format (request )]).encode ('utf-8' ),
621
+ 0 )
622
+ ])
623
+ self .service .connect ()
624
+ self .service .clone (namespace , repository , rw = False )
625
+ if not fail :
626
+ self .service .repository .create_remote ('all' , url = local_slug )
627
+ self .service .repository .create_remote (self .service .name , url = local_slug )
628
+ with self .mockup_git (namespace , repository ):
629
+ self .set_mock_popen_commands ([
630
+ ('git version' , b'git version 2.8.0' , b'' , 0 ),
631
+ ('git fetch --progress -v {0} pull/{1}/head:request/{1}' .format (self .service .name , request ), b'' , '\n ' .join ([
632
+ 'POST git-upload-pack (140 bytes)' ,
633
+ 'remote: Counting objects: 8318, done.' ,
634
+ 'remote: Compressing objects: 100% (3/3), done.' ,
635
+ 'remote: Total 8318 (delta 0), reused 0 (delta 0), pack-reused 8315' ,
636
+ 'Receiving objects: 100% (8318/8318), 3.59 MiB | 974.00 KiB/s, done.' ,
637
+ 'Resolving deltas: 100% (5126/5126), done.' ,
638
+ 'From {}:{}/{}' .format (self .service .fqdn , namespace , repository ),
639
+ ' * [new branch] master -> request/{}' .format (request )]).encode ('utf-8' ),
640
+ 0 )
641
+ ])
642
+ self .service .request_fetch (repository , namespace , request )
588
643
589
644
def action_request_create (self , cassette_name ,
590
645
namespace , repository , branch ,
0 commit comments