1- import unittest
21import argparse
32import sys
3+ import unittest
44
5- from main import run
5+ from unittest_parametrize import ParametrizedTestCase , param , parametrize
66
77import git_logger
8+ from main import run
89
910
1011def parse_args (args ):
@@ -25,7 +26,7 @@ def parse_args(args):
2526 return parser .parse_args (args )
2627
2728
28- class TestTokenUsage (unittest . TestCase ):
29+ class TestTokenUsage (ParametrizedTestCase ):
2930 def setUp (self ):
3031 test_args = parse_args (sys .argv [1 :])
3132 self .tokens = [test_args .tt1 , test_args .tt2 ]
@@ -79,60 +80,21 @@ def _get_usage(self, binded_repos, clients):
7980
8081 return limit_start , limit_finish
8182
82- def test_commits_parser (self ):
83- self .args .commits = True
84- for i in range (2 ):
85- clients = git_logger .Clients (
86- "github" , self ._change_tokens_order (self .tokens , i )
87- )
88- binded_repos = git_logger .get_next_binded_repo (clients , [self .repo ])
89-
90- limit_start , limit_finish = self ._get_usage (binded_repos , clients )
91-
92- self .assertTrue (self ._is_only_one_token_used (limit_start , limit_finish ))
93- self .assertTrue (self ._is_max_token_used (limit_start , limit_finish ))
94-
95- def test_contributors_parser (self ):
96- self .args .contributors = True
97- for i in range (2 ):
98- clients = git_logger .Clients (
99- "github" , self ._change_tokens_order (self .tokens , i )
100- )
101- binded_repos = git_logger .get_next_binded_repo (clients , [self .repo ])
102-
103- limit_start , limit_finish = self ._get_usage (binded_repos , clients )
104-
105- self .assertTrue (self ._is_only_one_token_used (limit_start , limit_finish ))
106- self .assertTrue (self ._is_max_token_used (limit_start , limit_finish ))
107-
108- def test_issues_parser (self ):
109- self .args .issues = True
110- for i in range (2 ):
111- clients = git_logger .Clients (
112- "github" , self ._change_tokens_order (self .tokens , i )
113- )
114- binded_repos = git_logger .get_next_binded_repo (clients , [self .repo ])
115-
116- limit_start , limit_finish = self ._get_usage (binded_repos , clients )
117-
118- self .assertTrue (self ._is_only_one_token_used (limit_start , limit_finish ))
119- self .assertTrue (self ._is_max_token_used (limit_start , limit_finish ))
120-
121- def test_invites_parser (self ):
122- self .args .invites = True
123- for i in range (2 ):
124- clients = git_logger .Clients (
125- "github" , self ._change_tokens_order (self .tokens , i )
126- )
127- binded_repos = git_logger .get_next_binded_repo (clients , [self .repo ])
128-
129- limit_start , limit_finish = self ._get_usage (binded_repos , clients )
130-
131- self .assertTrue (self ._is_only_one_token_used (limit_start , limit_finish ))
132- self .assertTrue (self ._is_max_token_used (limit_start , limit_finish ))
83+ @parametrize (
84+ 'args' ,
85+ [
86+ param ({'commits' : True }, id = 'commits' ),
87+ param ({'contributors' : True }, id = 'contributors' ),
88+ param ({'issues' : True }, id = 'issues' ),
89+ param ({'invites' : True }, id = 'invites' ),
90+ param ({'pull_requests' : True }, id = 'pull_requests' ),
91+ ],
92+ )
93+ def test_commits_parser (self , args : dict [str , bool ]):
94+ # patch args
95+ for k , v in args .items ():
96+ setattr (self .args , k , v )
13397
134- def test_pull_requests_parser (self ):
135- self .args .pull_requests = True
13698 for i in range (2 ):
13799 clients = git_logger .Clients (
138100 "github" , self ._change_tokens_order (self .tokens , i )
0 commit comments