def test_auth_positive(self): auth_result = Users.auth(_DEFAULT_USER, _DEFAULT_PASSWORD, _DEFAULT_HOST) self.assertEqual(auth_result.id, _DEFAULT_USER) self.assertEqual(auth_result.password, _DEFAULT_PASSWORD) self.assertEqual(Users.first().remoteAddr, None) self.assertIsNotNone( Users.auth(_DEFAULT_USER, _DEFAULT_PASSWORD, 'any_adrr'))
def do_HEAD(self): request = NutRequest(self) with NutResponse(self) as response: request.setHead(True) response.setHead(True) if self.headers['Authorization'] == None: return Response401(request, response) id, password = base64.b64decode( self.headers['Authorization'].split(' ')[1]).decode().split( ':') request.user = Users.auth(id, password, self.client_address[0]) if not request.user: return Response401(request, response) try: if len(request.bits) > 0 and request.bits[0] in mappings: i = request.bits[1] methodName = 'get' + i[0].capitalize() + i[1:] method = getattr(mappings[request.bits[0]], methodName, Response404) method(request, response, **request.query) else: self.handleFile(request, response) except BaseException as e: self.wfile.write(Response500(request, response))
def test_auth_positive(self): auth_result = Users.auth(_DEFAULT_USER, _DEFAULT_PASSWORD, _DEFAULT_HOST) self.assertEqual(auth_result.id, _DEFAULT_USER) self.assertEqual(auth_result.password, _DEFAULT_PASSWORD) self.assertEqual(Users.first().remoteAddr, None) self.assertIsNotNone(Users.auth(_DEFAULT_USER, _DEFAULT_PASSWORD, 'any_adrr')) user = Users.first() user.setRequireAuth(False) user.remoteAddr = _DEFAULT_HOST Users.users[user.id] = user self.assertTrue(Users.auth(user.id, user.password, user.remoteAddr)) user.setRequireAuth(True) self.assertTrue(Users.auth(_DEFAULT_USER, _DEFAULT_PASSWORD, user.remoteAddr)) self.assertFalse(Users.auth(_DEFAULT_USER, _DEFAULT_PASSWORD, 'any_addr'))
def do(self, verb='get'): request = NutRequest(self) with NutResponse(self) as response: if self.headers['Authorization'] is None: return Response401(request, response) id, password = base64.b64decode(self.headers['Authorization'].split(' ')[1]).decode().split(':') request.user = Users.auth(id, password, self.client_address[0]) if not request.user: return Response401(request, response) try: if not route(request, response, verb): self.handleFile(request, response) except BaseException as e: self.wfile.write(Response500(request, response))
def test_auth_negative(self): self.assertEqual(Users.auth(_DEFAULT_USER, 'wrong_pwd', _DEFAULT_HOST), None) self.assertEqual(Users.auth('wrong_user', _DEFAULT_PASSWORD, _DEFAULT_HOST), None)