Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-04-09 07:58:22

0001 #!/usr/bin/env python
0002 #
0003 # Licensed under the Apache License, Version 2.0 (the "License");
0004 # You may not use this file except in compliance with the License.
0005 # You may obtain a copy of the License at
0006 # http://www.apache.org/licenses/LICENSE-2.0OA
0007 #
0008 # Authors:
0009 # - Wen Guan, <wen.guan@cern.ch>, 2019
0010 
0011 
0012 """
0013 Test Request.
0014 """
0015 
0016 import unittest2 as unittest
0017 from nose.tools import assert_equal
0018 
0019 from idds.client.client import Client
0020 from idds.common.constants import RequestStatus
0021 from idds.common.utils import (check_database, has_config, setup_logging,
0022                                check_rest_host, get_rest_host, check_user_proxy)
0023 from idds.orm.requests import (add_request, get_request, update_request,
0024                                delete_requests)
0025 from idds.tests.common import get_request_properties
0026 
0027 setup_logging(__name__)
0028 
0029 
0030 class TestRequest(unittest.TestCase):
0031 
0032     @unittest.skipIf(not has_config(), "No config file")
0033     @unittest.skipIf(not check_database(), "Database is not defined")
0034     def test_create_and_check_for_request_orm(self):
0035         """ Request (ORM): Test the creation, query, and cancel of a Request """
0036         properties = get_request_properties()
0037 
0038         request_id = add_request(**properties)
0039 
0040         request = get_request(request_id=request_id)
0041         assert_equal(request_id, request['request_id'])
0042 
0043         for key in properties:
0044             if key in ['lifetime']:
0045                 continue
0046             assert_equal(request[key], properties[key])
0047 
0048         request_id1 = add_request(**properties)
0049         delete_requests(request_id=request_id1)
0050 
0051         update_request(request_id, parameters={'status': RequestStatus.Failed})
0052         request = get_request(request_id=request_id)
0053         assert_equal(request['status'], RequestStatus.Failed)
0054 
0055         req = get_request(request_id=999999)
0056         assert_equal(req, None)
0057 
0058         delete_requests(request_id=request_id)
0059 
0060         req = get_request(request_id=request_id)
0061         assert_equal(req, None)
0062 
0063     @unittest.skipIf(not has_config(), "No config file")
0064     @unittest.skipIf(not check_user_proxy(), "No user proxy to access REST")
0065     @unittest.skipIf(not check_rest_host(), "REST host is not defined")
0066     def test_create_and_check_for_request_rest(self):
0067         """ Request (REST): Test the creation, query, and deletion of a Request """
0068         host = get_rest_host()
0069 
0070         properties = get_request_properties()
0071 
0072         client = Client(host=host)
0073 
0074         request_id = client.add_request(**properties)
0075 
0076         requests = client.get_requests(request_id=request_id)
0077         assert_equal(len(requests), 1)
0078         assert_equal(request_id, requests[0]['request_id'])
0079 
0080         for key in properties:
0081             if key in ['lifetime']:
0082                 continue
0083             assert_equal(requests[0][key], properties[key])
0084 
0085         client.update_request(request_id, parameters={'status': RequestStatus.Failed})
0086         requests = client.get_requests(request_id=request_id)
0087         assert_equal(len(requests), 1)
0088         assert_equal(requests[0]['status'], RequestStatus.Failed)
0089 
0090         reqs = client.get_requests(request_id=999999)
0091         assert_equal(len(reqs), 0)