File indexing completed on 2026-04-09 07:58:22
0001
0002
0003
0004
0005
0006
0007
0008
0009
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)