@@ -45,6 +45,49 @@ def setUp(self):
4545 self .post_auth = {'HTTP_AUTHORIZATION' : authorization }
4646
4747
48+ class ApiKeyAuthenticationTestCase (FixtureTestCase ):
49+
50+ def setUp (self ):
51+ super (ApiKeyAuthenticationTestCase , self ).setUp ()
52+ ApiKey .objects .all ().delete ()
53+ self .auth = ApiKeyAuthentication ()
54+ self .request = HttpRequest ()
55+
56+ # Simulate sending the signal.
57+ user = User .objects .get (username = 'apiuser' )
58+ create_api_key (User , instance = user , created = True )
59+
60+ def test_is_not_authenticated (self ):
61+ """Should return HttpUnauthorized when incorrect credentials are given"""
62+ # No username/api_key details
63+ self .assertEqual (isinstance (
64+ self .auth .is_authenticated (self .request ), HttpUnauthorized ), True )
65+
66+ # Wrong username details.
67+ self .request .GET ['username' ] = 'foo'
68+ self .assertEqual (isinstance (
69+ self .auth .is_authenticated (self .request ), HttpUnauthorized ), True )
70+
71+ # No api_key.
72+ self .request .GET ['username' ] = 'daniel'
73+ self .assertEqual (isinstance (
74+ self .auth .is_authenticated (self .request ), HttpUnauthorized ), True )
75+
76+ # Wrong user/api_key.
77+ self .request .GET ['username' ] = 'daniel'
78+ self .request .GET ['api_key' ] = 'foo'
79+ self .assertEqual (isinstance (
80+ self .auth .is_authenticated (self .request ), HttpUnauthorized ), True )
81+
82+ def test_is_authenticated (self ):
83+ """Should correctly authenticate when using an existing user and key"""
84+ # Correct user/api_key.
85+ user = User .objects .get (username = 'apiuser' )
86+ self .request .GET ['username' ] = 'apiuser'
87+ self .request .GET ['api_key' ] = user .api_key .key
88+ self .assertEqual (self .auth .is_authenticated (self .request ), True )
89+
90+
4891class UserTest (FixtureTestCase ):
4992 """Test api user related stuff"""
5093
@@ -1023,7 +1066,7 @@ def setUp(self):
10231066 'change_report' , 'codespeed' , 'report' )
10241067 self .delete = Permission .objects .get_by_natural_key (
10251068 'delete_report' , 'codespeed' , 'report' )
1026-
1069+
10271070 self .report1 = Report .objects .get (pk = 1 )
10281071 self .revision1 = Revision .objects .get (pk = 1 )
10291072 self .executable1 = Executable .objects .get (pk = 1 )
@@ -1127,52 +1170,10 @@ def test_delete(self):
11271170 self .assertEquals (response .status_code , 405 )
11281171
11291172
1130- class ApiKeyAuthenticationTestCase (FixtureTestCase ):
1131-
1132- def setUp (self ):
1133- super (ApiKeyAuthenticationTestCase , self ).setUp ()
1134- ApiKey .objects .all ().delete ()
1135- self .auth = ApiKeyAuthentication ()
1136- self .request = HttpRequest ()
1137-
1138- # Simulate sending the signal.
1139- user = User .objects .get (username = 'apiuser' )
1140- create_api_key (User , instance = user , created = True )
1141-
1142- def test_is_not_authenticated (self ):
1143- """Should return HttpUnauthorized when incorrect credentials are given"""
1144- # No username/api_key details
1145- self .assertEqual (isinstance (
1146- self .auth .is_authenticated (self .request ), HttpUnauthorized ), True )
1147-
1148- # Wrong username details.
1149- self .request .GET ['username' ] = 'foo'
1150- self .assertEqual (isinstance (
1151- self .auth .is_authenticated (self .request ), HttpUnauthorized ), True )
1152-
1153- # No api_key.
1154- self .request .GET ['username' ] = 'daniel'
1155- self .assertEqual (isinstance (
1156- self .auth .is_authenticated (self .request ), HttpUnauthorized ), True )
1157-
1158- # Wrong user/api_key.
1159- self .request .GET ['username' ] = 'daniel'
1160- self .request .GET ['api_key' ] = 'foo'
1161- self .assertEqual (isinstance (
1162- self .auth .is_authenticated (self .request ), HttpUnauthorized ), True )
1163-
1164- def test_is_authenticated (self ):
1165- """Should correctly authenticate when using an existing user and key"""
1166- # Correct user/api_key.
1167- user = User .objects .get (username = 'apiuser' )
1168- self .request .GET ['username' ] = 'apiuser'
1169- self .request .GET ['api_key' ] = user .api_key .key
1170- self .assertEqual (self .auth .is_authenticated (self .request ), True )
1171-
1172-
11731173class ResultBundleTestCase (FixtureTestCase ):
11741174
11751175 def setUp (self ):
1176+ super (ResultBundleTestCase , self ).setUp ()
11761177 self .data1 = {
11771178 'commitid' : '2' ,
11781179 'branch' : 'default' , # Always use default for trunk/master/tip
@@ -1279,6 +1280,16 @@ class ResultBundleResourceTestCase(FixtureTestCase):
12791280
12801281 DATETIME_FORMAT = '%Y-%m-%d %H:%M:%S'
12811282 def setUp (self ):
1283+
1284+ super (ResultBundleResourceTestCase , self ).setUp ()
1285+
1286+ self .add = Permission .objects .get_by_natural_key (
1287+ 'add_result' , 'codespeed' , 'result' )
1288+ self .change = Permission .objects .get_by_natural_key (
1289+ 'change_result' , 'codespeed' , 'result' )
1290+ self .delete = Permission .objects .get_by_natural_key (
1291+ 'delete_result' , 'codespeed' , 'result' )
1292+
12821293 self .data1 = {
12831294 'commitid' : '2' ,
12841295 'branch' : 'default' , # Always use default for trunk/master/tip
@@ -1305,6 +1316,7 @@ def setUp(self):
13051316 self .project .save ()
13061317 self .env1 = Environment (name = 'Bulldozer' )
13071318 self .env1 .save ()
1319+ self .client = Client ()
13081320
13091321 def test_post_mandatory (self ):
13101322 """Should save a new result with only mandatory data"""
0 commit comments