Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(217)

Side by Side Diff: appengine/machine_provider/handlers_endpoints_test.py

Issue 2716783002: Enforce two-day limit on lease requests (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « appengine/machine_provider/handlers_endpoints.py ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2015 The LUCI Authors. All rights reserved. 2 # Copyright 2015 The LUCI Authors. All rights reserved.
3 # Use of this source code is governed under the Apache License, Version 2.0 3 # Use of this source code is governed under the Apache License, Version 2.0
4 # that can be found in the LICENSE file. 4 # that can be found in the LICENSE file.
5 5
6 """Unit tests for handlers_endpoints.py.""" 6 """Unit tests for handlers_endpoints.py."""
7 7
8 import datetime 8 import datetime
9 import json 9 import json
10 import unittest 10 import unittest
(...skipping 836 matching lines...) Expand 10 before | Expand all | Expand 10 after
847 847
848 lease_response = jsonish_dict_to_rpc( 848 lease_response = jsonish_dict_to_rpc(
849 self.call_api('lease', lease_request).json, 849 self.call_api('lease', lease_request).json,
850 rpc_messages.LeaseResponse, 850 rpc_messages.LeaseResponse,
851 ) 851 )
852 self.assertEqual( 852 self.assertEqual(
853 lease_response.error, 853 lease_response.error,
854 rpc_messages.LeaseRequestError.NONPOSITIVE_DEADLINE, 854 rpc_messages.LeaseRequestError.NONPOSITIVE_DEADLINE,
855 ) 855 )
856 856
857 def test_lease_duration_too_long(self):
858 def is_group_member(group):
859 return group == 'machine-provider-users'
860 self.mock(acl.auth, 'is_group_member', is_group_member)
861 lease_request = rpc_to_json(rpc_messages.LeaseRequest(
862 dimensions=rpc_messages.Dimensions(
863 os_family=rpc_messages.OSFamily.LINUX,
864 ),
865 duration=9999999999,
866 request_id='abc',
867 ))
868
869 lease_response = jsonish_dict_to_rpc(
870 self.call_api('lease', lease_request).json,
871 rpc_messages.LeaseResponse,
872 )
873 self.assertEqual(
874 lease_response.error,
875 rpc_messages.LeaseRequestError.LEASE_TOO_LONG,
876 )
877
857 def test_lease_duration_and_lease_expiration_ts(self): 878 def test_lease_duration_and_lease_expiration_ts(self):
858 def is_group_member(group): 879 def is_group_member(group):
859 return group == 'machine-provider-users' 880 return group == 'machine-provider-users'
860 self.mock(acl.auth, 'is_group_member', is_group_member) 881 self.mock(acl.auth, 'is_group_member', is_group_member)
861 lease_request = rpc_to_json(rpc_messages.LeaseRequest( 882 lease_request = rpc_to_json(rpc_messages.LeaseRequest(
862 dimensions=rpc_messages.Dimensions( 883 dimensions=rpc_messages.Dimensions(
863 os_family=rpc_messages.OSFamily.LINUX, 884 os_family=rpc_messages.OSFamily.LINUX,
864 ), 885 ),
865 duration=1, 886 duration=1,
866 lease_expiration_ts=9999999999, 887 lease_expiration_ts=int(utils.time_time()) + 3600,
867 request_id='abc', 888 request_id='abc',
868 )) 889 ))
869 890
870 lease_response = jsonish_dict_to_rpc( 891 lease_response = jsonish_dict_to_rpc(
871 self.call_api('lease', lease_request).json, 892 self.call_api('lease', lease_request).json,
872 rpc_messages.LeaseResponse, 893 rpc_messages.LeaseResponse,
873 ) 894 )
874 self.assertEqual( 895 self.assertEqual(
875 lease_response.error, 896 lease_response.error,
876 rpc_messages.LeaseRequestError.MUTUAL_EXCLUSION_ERROR, 897 rpc_messages.LeaseRequestError.MUTUAL_EXCLUSION_ERROR,
877 ) 898 )
878 899
879 def test_lease_timestamp(self): 900 def test_lease_timestamp(self):
880 def is_group_member(group): 901 def is_group_member(group):
881 return group == 'machine-provider-users' 902 return group == 'machine-provider-users'
882 self.mock(acl.auth, 'is_group_member', is_group_member) 903 self.mock(acl.auth, 'is_group_member', is_group_member)
883 lease_request = rpc_to_json(rpc_messages.LeaseRequest( 904 lease_request = rpc_to_json(rpc_messages.LeaseRequest(
884 dimensions=rpc_messages.Dimensions( 905 dimensions=rpc_messages.Dimensions(
885 os_family=rpc_messages.OSFamily.LINUX, 906 os_family=rpc_messages.OSFamily.LINUX,
886 ), 907 ),
887 lease_expiration_ts=9999999999, 908 lease_expiration_ts=int(utils.time_time()) + 3600,
888 request_id='abc', 909 request_id='abc',
889 )) 910 ))
890 911
891 lease_response = jsonish_dict_to_rpc( 912 lease_response = jsonish_dict_to_rpc(
892 self.call_api('lease', lease_request).json, 913 self.call_api('lease', lease_request).json,
893 rpc_messages.LeaseResponse, 914 rpc_messages.LeaseResponse,
894 ) 915 )
895 self.assertFalse(lease_response.error) 916 self.assertFalse(lease_response.error)
896 917
897 def test_lease_timestamp_passed(self): 918 def test_lease_timestamp_passed(self):
(...skipping 10 matching lines...) Expand all
908 929
909 lease_response = jsonish_dict_to_rpc( 930 lease_response = jsonish_dict_to_rpc(
910 self.call_api('lease', lease_request).json, 931 self.call_api('lease', lease_request).json,
911 rpc_messages.LeaseResponse, 932 rpc_messages.LeaseResponse,
912 ) 933 )
913 self.assertEqual( 934 self.assertEqual(
914 lease_response.error, 935 lease_response.error,
915 rpc_messages.LeaseRequestError.LEASE_EXPIRATION_TS_ERROR, 936 rpc_messages.LeaseRequestError.LEASE_EXPIRATION_TS_ERROR,
916 ) 937 )
917 938
939 def test_lease_timestamp_too_far(self):
940 def is_group_member(group):
941 return group == 'machine-provider-users'
942 self.mock(acl.auth, 'is_group_member', is_group_member)
943 lease_request = rpc_to_json(rpc_messages.LeaseRequest(
944 dimensions=rpc_messages.Dimensions(
945 os_family=rpc_messages.OSFamily.LINUX,
946 ),
947 lease_expiration_ts=9999999999,
948 request_id='abc',
949 ))
950
951 lease_response = jsonish_dict_to_rpc(
952 self.call_api('lease', lease_request).json,
953 rpc_messages.LeaseResponse,
954 )
955 self.assertEqual(
956 lease_response.error,
957 rpc_messages.LeaseRequestError.LEASE_TOO_LONG,
958 )
959
918 def test_duplicate(self): 960 def test_duplicate(self):
919 def is_group_member(group): 961 def is_group_member(group):
920 return group == 'machine-provider-users' 962 return group == 'machine-provider-users'
921 self.mock(acl.auth, 'is_group_member', is_group_member) 963 self.mock(acl.auth, 'is_group_member', is_group_member)
922 lease_request = rpc_to_json(rpc_messages.LeaseRequest( 964 lease_request = rpc_to_json(rpc_messages.LeaseRequest(
923 dimensions=rpc_messages.Dimensions( 965 dimensions=rpc_messages.Dimensions(
924 os_family=rpc_messages.OSFamily.OSX, 966 os_family=rpc_messages.OSFamily.OSX,
925 ), 967 ),
926 duration=3, 968 duration=3,
927 request_id='asdf', 969 request_id='asdf',
(...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after
1042 rpc_messages.LeaseResponse, 1084 rpc_messages.LeaseResponse,
1043 ) 1085 )
1044 self.assertEqual( 1086 self.assertEqual(
1045 lease_response.error, 1087 lease_response.error,
1046 rpc_messages.LeaseRequestError.UNSPECIFIED_TOPIC, 1088 rpc_messages.LeaseRequestError.UNSPECIFIED_TOPIC,
1047 ) 1089 )
1048 1090
1049 1091
1050 if __name__ == '__main__': 1092 if __name__ == '__main__':
1051 unittest.main() 1093 unittest.main()
OLDNEW
« no previous file with comments | « appengine/machine_provider/handlers_endpoints.py ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698