@@ -13,7 +13,7 @@ struct AssignCtx {
13
13
teams : Teams ,
14
14
config : AssignConfig ,
15
15
issue : Issue ,
16
- reviewer_workqueue : ReviewerWorkqueue ,
16
+ reviewer_workqueue : HashMap < UserId , HashSet < PullRequestNumber > > ,
17
17
}
18
18
19
19
impl AssignCtx {
@@ -51,7 +51,7 @@ impl AssignCtx {
51
51
52
52
fn assign_prs ( mut self , user_id : UserId , count : u64 ) -> Self {
53
53
let prs: HashSet < PullRequestNumber > = ( 0 ..count) . collect ( ) ;
54
- self . reviewer_workqueue . set_user_prs ( user_id, prs) ;
54
+ self . reviewer_workqueue . insert ( user_id, prs) ;
55
55
self
56
56
}
57
57
@@ -89,12 +89,13 @@ impl AssignCtx {
89
89
mut self ,
90
90
names : & [ & str ] ,
91
91
expected : Result < & [ & str ] , FindReviewerError > ,
92
- ) -> anyhow:: Result < TestContext > {
92
+ ) -> anyhow:: Result < Self > {
93
93
let names: Vec < _ > = names. iter ( ) . map ( |n| n. to_string ( ) ) . collect ( ) ;
94
94
95
+ let workqueue = ReviewerWorkqueue :: new ( self . reviewer_workqueue . clone ( ) ) ;
95
96
let reviewers = candidate_reviewers_from_names (
96
97
self . test_ctx . db_client_mut ( ) ,
97
- Arc :: new ( RwLock :: new ( self . reviewer_workqueue ) ) ,
98
+ Arc :: new ( RwLock :: new ( workqueue ) ) ,
98
99
& self . teams ,
99
100
& self . config ,
100
101
& self . issue ,
@@ -114,7 +115,13 @@ impl AssignCtx {
114
115
( Ok ( candidates) , Err ( _) ) => panic ! ( "expected Err, got Ok: {candidates:?}" ) ,
115
116
( Err ( e) , Ok ( _) ) => panic ! ( "expected Ok, got Err: {e}" ) ,
116
117
} ;
117
- Ok ( self . test_ctx )
118
+ Ok ( self )
119
+ }
120
+ }
121
+
122
+ impl From < AssignCtx > for TestContext {
123
+ fn from ( value : AssignCtx ) -> Self {
124
+ value. test_ctx
118
125
}
119
126
}
120
127
@@ -462,7 +469,7 @@ async fn group_team_user_precedence() {
462
469
. check ( & [ "compiler" ] , Ok ( & [ "user2" ] ) )
463
470
. await ?;
464
471
465
- basic_test ( ctx, config, issue ( ) . call ( ) )
472
+ basic_test ( ctx. into ( ) , config, issue ( ) . call ( ) )
466
473
. teams ( & teams)
467
474
. check ( & [ "rust-lang/compiler" ] , Ok ( & [ "user2" ] ) )
468
475
. await
@@ -483,13 +490,10 @@ async fn what_do_slashes_mean() {
483
490
484
491
run_db_test ( |ctx| async move {
485
492
// Random slash names should work from groups.
486
- let ctx = basic_test ( ctx, config. clone ( ) , issue ( ) )
487
- . teams ( & teams)
488
- . check ( & [ "foo/bar" ] , Ok ( & [ "foo-user" ] ) )
489
- . await ?;
490
-
491
493
basic_test ( ctx, config, issue ( ) )
492
494
. teams ( & teams)
495
+ . check ( & [ "foo/bar" ] , Ok ( & [ "foo-user" ] ) )
496
+ . await ?
493
497
. check ( & [ "rust-lang-nursery/compiler" ] , Ok ( & [ "user2" ] ) )
494
498
. await
495
499
} )
@@ -524,18 +528,15 @@ async fn vacation() {
524
528
525
529
run_db_test ( |ctx| async move {
526
530
// Test that `r? user` returns a specific error about the user being on vacation.
527
- let ctx = basic_test ( ctx, config. clone ( ) , issue ( ) . call ( ) )
531
+ basic_test ( ctx, config, issue ( ) . call ( ) )
528
532
. teams ( & teams)
529
533
. check (
530
534
& [ "jyn514" ] ,
531
535
Err ( FindReviewerError :: ReviewerOffRotation {
532
536
username : "jyn514" . to_string ( ) ,
533
537
} ) ,
534
538
)
535
- . await ?;
536
-
537
- basic_test ( ctx, config. clone ( ) , issue ( ) . call ( ) )
538
- . teams ( & teams)
539
+ . await ?
539
540
. check ( & [ "bootstrap" ] , Ok ( & [ "Mark-Simulacrum" ] ) )
540
541
. await
541
542
} )
0 commit comments