| OLD | NEW |
| 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 Loading... |
| 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 Loading... |
| 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 Loading... |
| 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() |
| OLD | NEW |