d2l_sdk 0.1.12 → 0.1.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.vscode/settings.json +2 -1
- data/example_scripts/add_to_201708.rb +15 -0
- data/example_scripts/enroll_users.rb +22 -0
- data/example_scripts/find_201708_courses.rb +16 -0
- data/lib/d2l_sdk/config.rb +1 -1
- data/lib/d2l_sdk/version.rb +1 -1
- data/lib/d2l_sdk.rb +1 -0
- metadata +6 -9
- data/example_scripts/adjusted_courses.txt +0 -44446
- data/example_tests/multithread_test.rb +0 -6
- data/example_tests/test3.rb +0 -284
- data/example_tests/testCSV.rb +0 -36
- data/example_tests/test_course_search.rb +0 -48
- data/example_tests/unit_tests.rb +0 -106
data/example_tests/test3.rb
DELETED
@@ -1,284 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'rubygems'
|
3
|
-
require 'awesome_print' # awesome_print gem
|
4
|
-
require 'base64'
|
5
|
-
require 'json'
|
6
|
-
require 'restclient' # rest-client gem
|
7
|
-
require 'openssl'
|
8
|
-
require 'open-uri'
|
9
|
-
require 'launchy'
|
10
|
-
require 'colorize'
|
11
|
-
|
12
|
-
# vars
|
13
|
-
$hostname = 'wiutest.desire2learn.com' # set hostname to the test server
|
14
|
-
puts '[+] Host set to: '.yellow + $hostname
|
15
|
-
# User ID = api-user
|
16
|
-
# User PW = see keepass
|
17
|
-
$user_id = 'rV5wdZwBbnT4prgaLlqx05'
|
18
|
-
$user_key = 'xVee4KJhixBCQphf-3Wuf9'
|
19
|
-
|
20
|
-
# #OG app ID and key
|
21
|
-
$app_id = 'ysuBVIqmRDaJpnVEOb8Ylg'
|
22
|
-
$app_key = 't3Rro3P91i_U1let5vd8Wg'
|
23
|
-
|
24
|
-
# #Zero permissions account app
|
25
|
-
# $app_id = 'KG3-PlRdIghGK_mc4M0QAg'
|
26
|
-
# $app_key = '0VX8ZBNh5_Qip3SmNL57eA'
|
27
|
-
|
28
|
-
def create_authenticated_uri(path, http_method)
|
29
|
-
parsed_url = URI.parse(path.downcase)
|
30
|
-
uri_scheme = 'https'
|
31
|
-
query_string = get_query_string(parsed_url.path, http_method)
|
32
|
-
uri = uri_scheme + '://' + $hostname + parsed_url.path + query_string
|
33
|
-
uri << '&' + parsed_url.query if parsed_url.query
|
34
|
-
uri
|
35
|
-
end
|
36
|
-
|
37
|
-
def build_authenticated_uri_query_string(signature, timestamp)
|
38
|
-
"?x_a=#{$app_id}"\
|
39
|
-
"&x_b=#{$user_id}"\
|
40
|
-
"&x_c=#{get_base64_hash_string($app_key, signature)}"\
|
41
|
-
"&x_d=#{get_base64_hash_string($user_key, signature)}"\
|
42
|
-
"&x_t=#{timestamp}"
|
43
|
-
end
|
44
|
-
|
45
|
-
def authenticate_uri(path, http_method)
|
46
|
-
get_query_string(path, http_method)
|
47
|
-
end
|
48
|
-
|
49
|
-
def format_signature(path, http_method, timestamp)
|
50
|
-
http_method.upcase + '&' + path.encode('UTF-8') + '&' + timestamp.to_s
|
51
|
-
end
|
52
|
-
|
53
|
-
def get_base64_hash_string(key, signature)
|
54
|
-
hash = OpenSSL::HMAC.digest('sha256', key, signature)
|
55
|
-
Base64.urlsafe_encode64(hash).delete('=')
|
56
|
-
end
|
57
|
-
|
58
|
-
def get_query_string(path, http_method)
|
59
|
-
timestamp = Time.now.to_i
|
60
|
-
signature = format_signature(path, http_method, timestamp)
|
61
|
-
build_authenticated_uri_query_string(signature, timestamp)
|
62
|
-
end
|
63
|
-
|
64
|
-
def _post(url, payload, headers)
|
65
|
-
RestClient.post(url, payload.to_json, headers)
|
66
|
-
end
|
67
|
-
=begin
|
68
|
-
{ 'OrgDefinedId' => '12345678',
|
69
|
-
'FirstName' => 'test',
|
70
|
-
'MiddleName' => 'test1',
|
71
|
-
'LastName' => 'test12',
|
72
|
-
'ExternalEmail' => 'None',
|
73
|
-
'UserName' => 'test12345a',
|
74
|
-
'RoleId' => 105,
|
75
|
-
'IsActive' => false,
|
76
|
-
'SendCreationEmail' => false
|
77
|
-
}
|
78
|
-
=end
|
79
|
-
# CREATE
|
80
|
-
def create_sample_user_data
|
81
|
-
http_method = 'POST'
|
82
|
-
puts '[-] Testing ' + http_method + ' through create_sample_user_data'
|
83
|
-
path = '/d2l/api/lp/1.4/users/'
|
84
|
-
payload = { 'OrgDefinedId' => '', # String
|
85
|
-
'FirstName' => 'TestUser', # String
|
86
|
-
'MiddleName' => 'Test', # String
|
87
|
-
'LastName' => 'Test', # String
|
88
|
-
'ExternalEmail' => nil, # String (nil or well-formed email addr)
|
89
|
-
'UserName' => 'test12345a', # String
|
90
|
-
'RoleId' => 110, # number
|
91
|
-
'IsActive' => false, # bool
|
92
|
-
'SendCreationEmail' => false, # bool
|
93
|
-
}
|
94
|
-
|
95
|
-
ap payload
|
96
|
-
puts '[-] Path used: ' + path
|
97
|
-
headers = { content_type: :json }
|
98
|
-
# POST /d2l/api/lp/1.4/users/
|
99
|
-
test_uri = create_authenticated_uri(path, http_method)
|
100
|
-
RestClient.post(test_uri, payload.to_json, headers)
|
101
|
-
puts '[+] sample user data completed successfully'.green
|
102
|
-
end
|
103
|
-
|
104
|
-
def update_sample_user_data(_userId, _newData)
|
105
|
-
http_method = 'PUT'
|
106
|
-
puts '[-] Testing ' + http_method + ' through update_sample_user_data'
|
107
|
-
path = '/d2l/api/lp/1.4/users/' + '47906' #'JtVGn4cUKz' # to_s
|
108
|
-
payload = {
|
109
|
-
'OrgDefinedId' => '',
|
110
|
-
'FirstName' => 'API',
|
111
|
-
'MiddleName' => 'changedName',
|
112
|
-
'LastName' => 'User',
|
113
|
-
'ExternalEmail' => 'help@wiu.edu',
|
114
|
-
'UserName' => 'api-user',
|
115
|
-
'Activation' => {
|
116
|
-
'IsActive' => true
|
117
|
-
}
|
118
|
-
}
|
119
|
-
print 'user JSON = '
|
120
|
-
ap payload
|
121
|
-
headers = { content_type: :json }
|
122
|
-
# POST /d2l/api/lp/1.4/users/
|
123
|
-
test_uri = create_authenticated_uri(path, http_method)
|
124
|
-
puts '[-] Path used: ' + path
|
125
|
-
RestClient.put(test_uri, payload.to_json, headers)
|
126
|
-
puts '[+] sample user data updated successfully'.green
|
127
|
-
# argument newData is used to update data of the sample users
|
128
|
-
# will need to get the userId of the sample first
|
129
|
-
end
|
130
|
-
|
131
|
-
def get_query(uri_string)
|
132
|
-
RestClient.get(uri_string) do |response, request, result, &block|
|
133
|
-
begin
|
134
|
-
case response.code
|
135
|
-
when 200
|
136
|
-
puts '[+] The request has succeeded.'.green
|
137
|
-
print '[-] Class utilized: '
|
138
|
-
puts JSON.parse(response).class
|
139
|
-
# puts "\n[+] Unformatted JSON parsed response: "
|
140
|
-
# puts JSON.parse(response)
|
141
|
-
puts "\n[-] awesome_print Formatted JSON parsed response: "
|
142
|
-
ap JSON.parse(response)
|
143
|
-
else
|
144
|
-
handle_response(response.code)
|
145
|
-
response.return!(request, result, &block)
|
146
|
-
puts '[!] Get query failed, see above response code'.red
|
147
|
-
end
|
148
|
-
rescue
|
149
|
-
ap response.code
|
150
|
-
end
|
151
|
-
end
|
152
|
-
end
|
153
|
-
|
154
|
-
def handle_response(code)
|
155
|
-
case code
|
156
|
-
when 400
|
157
|
-
puts '[!] 400: Bad Request'
|
158
|
-
when 401
|
159
|
-
puts '[!] 401: Unauthorized'
|
160
|
-
|
161
|
-
when 403
|
162
|
-
print '[!] Error Code Forbidden 403: accessing the page or resource '\
|
163
|
-
'you were trying to reach is absolutely forbidden for some reason.'
|
164
|
-
when 404
|
165
|
-
puts '[!] 404: Not Found'
|
166
|
-
when 405
|
167
|
-
puts '[!] 405: Method Not Allowed'
|
168
|
-
when 406
|
169
|
-
puts 'Unacceptable Type'\
|
170
|
-
'Unable to provide content type matching the client\'s Accept header.'
|
171
|
-
when 412
|
172
|
-
puts '[!] 412: Precondition failed\n'\
|
173
|
-
'Unsupported or invalid parameters, or missing required parameters.'
|
174
|
-
when 415
|
175
|
-
puts '[!] 415: Unsupported Media Type'\
|
176
|
-
'A PUT or POST payload cannot be accepted.'
|
177
|
-
when 423
|
178
|
-
raise SomeCustomExceptionIfYouWant
|
179
|
-
when 500
|
180
|
-
puts '[!] 500: General Service Error\n'\
|
181
|
-
'Empty response body. The service has encountered an unexpected'\
|
182
|
-
'state and cannot continue to handle your action request.'
|
183
|
-
when 504
|
184
|
-
puts '[!] 504: Service Error'
|
185
|
-
end
|
186
|
-
end
|
187
|
-
|
188
|
-
# example paths
|
189
|
-
# -----------------
|
190
|
-
# path = '/d2l/api/lp/1.4/users/'
|
191
|
-
# path = '/d2l/api/lp/1.4/enrollments/users/47892/orgUnits/'
|
192
|
-
# path = '/d2l/api/versions/'
|
193
|
-
|
194
|
-
# Test1
|
195
|
-
def testRolesViewing
|
196
|
-
puts '[-] Test1: Checking if Current User can check existing roles'.cyan
|
197
|
-
path = '/d2l/api/lp/1.4/roles/'
|
198
|
-
http_method = 'GET'
|
199
|
-
test_uri = create_authenticated_uri(path, http_method)
|
200
|
-
puts '[-] Authenticated URI Created For: ' + path
|
201
|
-
# General Brightspace API response behaviors
|
202
|
-
get_query(test_uri)
|
203
|
-
puts "[+] Test1 Succeeded\n".green
|
204
|
-
rescue
|
205
|
-
puts '[!] Test1 failed'.red
|
206
|
-
end
|
207
|
-
|
208
|
-
# Test 2
|
209
|
-
def testWhoAmI
|
210
|
-
puts "[-] Test2: Getting Current User's WhoAmI".cyan
|
211
|
-
path = '/d2l/api/lp/1.4/users/whoami'
|
212
|
-
http_method = 'GET'
|
213
|
-
test_uri = create_authenticated_uri(path, http_method)
|
214
|
-
puts '[-] Authenticated URI Created: ' + path
|
215
|
-
# General Brightspace API response behaviors
|
216
|
-
get_query(test_uri)
|
217
|
-
puts "[+] Test2 Succeeded\n".green
|
218
|
-
rescue
|
219
|
-
puts '[!] Test2 failed'.red
|
220
|
-
end
|
221
|
-
|
222
|
-
# TEST 3
|
223
|
-
def testCreateUser
|
224
|
-
puts '[-] Test3: testing create sample user data function'.cyan
|
225
|
-
create_sample_user_data # ERROR 403 Forbidden (lack of access/back-end)
|
226
|
-
puts "[+] Test3 Succeeded\n".green
|
227
|
-
rescue => error
|
228
|
-
ap error
|
229
|
-
puts "[!] Test3 failed\n".red
|
230
|
-
# ap error.backtrace
|
231
|
-
end
|
232
|
-
|
233
|
-
# Test 4
|
234
|
-
def testUpdateUser
|
235
|
-
puts '[-] Test4: testing update sample user data function'.cyan
|
236
|
-
update_sample_user_data(1, 1) # TCP failed?
|
237
|
-
puts "[+] Test4 Succeeded\n".green
|
238
|
-
rescue => error
|
239
|
-
ap error
|
240
|
-
ap error.backtrace
|
241
|
-
puts "[!] Test4 failed\n".red
|
242
|
-
end
|
243
|
-
|
244
|
-
# Test 5
|
245
|
-
def testWhoAnotherUserIs(id)
|
246
|
-
puts "[-] Test5: Getting Current User's Ability to view other user profiles".cyan
|
247
|
-
path = '/d2l/api/lp/1.4/users/' + id # '/d2l/api/lp/1.4/users/whoami'
|
248
|
-
http_method = 'GET'
|
249
|
-
test_uri = create_authenticated_uri(path, http_method)
|
250
|
-
puts '[-] Authenticated URI Created: ' + path
|
251
|
-
# General Brightspace API response behaviors
|
252
|
-
get_query(test_uri)
|
253
|
-
puts "[+] Test5 Succeeded\n".green
|
254
|
-
rescue
|
255
|
-
puts '[!] Test5 failed'.red
|
256
|
-
end
|
257
|
-
|
258
|
-
def testSearchByUserName(username)
|
259
|
-
puts "[-] Test6: Using brightspace search functionality using UserName".cyan
|
260
|
-
path = '/d2l/api/lp/1.4/users/' + "?UserName=" + username
|
261
|
-
http_method = 'GET'
|
262
|
-
test_uri = create_authenticated_uri(path, http_method)
|
263
|
-
puts '[-] Authenticated URI Created: ' + path
|
264
|
-
# General Brightspace API response behaviors
|
265
|
-
get_query(test_uri)
|
266
|
-
puts "[+] Test6 Succeeded\n".green
|
267
|
-
rescue
|
268
|
-
puts '[!] Test6 failed'.red
|
269
|
-
end
|
270
|
-
|
271
|
-
|
272
|
-
#testRolesViewing
|
273
|
-
#testWhoAmI
|
274
|
-
#testCreateUser
|
275
|
-
#testUpdateUser
|
276
|
-
#testWhoAnotherUserIs('47906')
|
277
|
-
testSearchByUserName("test12345a")
|
278
|
-
|
279
|
-
# ap response.return!(request, result, &block)
|
280
|
-
# hash = OpenSSL::HMAC.digest('sha256', "#{$user_id}&#{$user_key}", $app_key)
|
281
|
-
# x_c = Base64.urlsafe_encode64(hash).delete('=')
|
282
|
-
# puts '[+] Hash: ' + x_c
|
283
|
-
# $timestamp = Time.now.to_i # current hour
|
284
|
-
# $timestamp = 1406652368
|
data/example_tests/testCSV.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
require 'csv'
|
2
|
-
require 'Time'
|
3
|
-
#Smaller version of Enroll/Withdrawals-01
|
4
|
-
csv_fname = "lib/export_jobs/Enrollments and Withdrawals-01-17-2017T10-40-29.csv"
|
5
|
-
# "export_jobs/Enrollments and Withdrawals-01-17-2017T14-11-41.csv"
|
6
|
-
# "lib/export_jobs/Enrollments and Withdrawals-01-17-2017T10-40-29.csv"
|
7
|
-
|
8
|
-
def fix_csv_format(csv_fname)
|
9
|
-
# for this csv file...
|
10
|
-
File.open(csv_fname + ".csv", 'w') do |file|
|
11
|
-
# set row num to 0 to keep track of headers
|
12
|
-
row_num = 0
|
13
|
-
# for each row
|
14
|
-
CSV.foreach(csv_fname) do |row|
|
15
|
-
# the line is initialized as an empty string
|
16
|
-
line = ""
|
17
|
-
# for all of these values
|
18
|
-
row[0..-1].each do |value|
|
19
|
-
# If it a UTC date time value, then parse as Time.
|
20
|
-
if value =~ /\b[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}.[0-9]*Z\b/ # if the value is UTC formatted
|
21
|
-
line << "\"#{Time.parse(value)}\""
|
22
|
-
# if its the last value in the row then dont put a comma at the end.
|
23
|
-
elsif value == row[-1]
|
24
|
-
line <<"\"#{value}\""
|
25
|
-
# not the last value in the row, throw a comma after the value
|
26
|
-
else
|
27
|
-
line << "\"#{value}\","
|
28
|
-
end
|
29
|
-
end
|
30
|
-
# append this line to the csv
|
31
|
-
file.write(line + "\n")
|
32
|
-
# increment the row number
|
33
|
-
row_num += 1
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
@@ -1,48 +0,0 @@
|
|
1
|
-
require_relative "lib/d2l_sdk"
|
2
|
-
require 'benchmark'
|
3
|
-
|
4
|
-
#ap get_org_unit_sections(23434)
|
5
|
-
=begin
|
6
|
-
courses = get_all_courses
|
7
|
-
#ap courses[0..30]
|
8
|
-
courses[0..300].each do |course|
|
9
|
-
section = get_org_unit_sections(course["Identifier"])
|
10
|
-
if section != nil
|
11
|
-
puts section
|
12
|
-
break
|
13
|
-
end
|
14
|
-
end
|
15
|
-
=end
|
16
|
-
ap get_org_unit_properties(6840)
|
17
|
-
|
18
|
-
|
19
|
-
#search_var = "test"
|
20
|
-
#ap get_courses_by_code(search_var)
|
21
|
-
#n = get_courses_by_code_(search_var)
|
22
|
-
|
23
|
-
|
24
|
-
#ASSUMPTION: get_all_courses is slower.
|
25
|
-
#m = []
|
26
|
-
#get_courses_by_code(search_var).each do |course|
|
27
|
-
# course.delete("Path")
|
28
|
-
# m.push(course)
|
29
|
-
#end
|
30
|
-
#ap get_all_courses.size
|
31
|
-
#ap get_all_courses_["Items"]
|
32
|
-
|
33
|
-
#puts "get_courses_by_code_ has #{n.size - m.size} more courses returned than its alternative"
|
34
|
-
#puts "Courses not included in get_courses_by_code_"
|
35
|
-
#ap m - n
|
36
|
-
#puts "Courses not included in get_courses_by_code"
|
37
|
-
#ap n - m
|
38
|
-
|
39
|
-
#Benchmark.bmbm do |x|
|
40
|
-
# x.report("get_courses_by_code_"){ap get_courses_by_code_(search_var).size}
|
41
|
-
# x.report("get_all_paged_courses_by_code"){ap get_all_paged_courses_by_code(search_var).size}
|
42
|
-
#end
|
43
|
-
=begin
|
44
|
-
Benchmark.bmbm do |x|
|
45
|
-
x.report("get_all_courses"){get_all_courses}
|
46
|
-
x.report("get_all_courses_"){get_all_courses_}
|
47
|
-
end
|
48
|
-
=end
|
data/example_tests/unit_tests.rb
DELETED
@@ -1,106 +0,0 @@
|
|
1
|
-
require_relative 'd2l_api'
|
2
|
-
|
3
|
-
# Test1
|
4
|
-
def test_roles_viewing
|
5
|
-
puts '[-] Test1: Checking if Current User can check existing roles'.cyan
|
6
|
-
path = '/d2l/api/lp/1.4/roles/'
|
7
|
-
http_method = 'GET'
|
8
|
-
test_uri = create_authenticated_uri(path, http_method)
|
9
|
-
puts '[-] Authenticated URI Created For: ' + path
|
10
|
-
# General Brightspace API response behaviors
|
11
|
-
get_query(test_uri)
|
12
|
-
puts "[+] Test1 Succeeded\n".green
|
13
|
-
rescue
|
14
|
-
puts '[!] Test1 failed'.red
|
15
|
-
end
|
16
|
-
|
17
|
-
# Test 2
|
18
|
-
def test_whoami
|
19
|
-
puts "[-] Test2: Getting Current User's WhoAmI".cyan
|
20
|
-
path = '/d2l/api/lp/1.4/users/whoami'
|
21
|
-
http_method = 'GET'
|
22
|
-
test_uri = create_authenticated_uri(path, http_method)
|
23
|
-
puts '[-] Authenticated URI Created: ' + path
|
24
|
-
# General Brightspace API response behaviors
|
25
|
-
get_query(test_uri)
|
26
|
-
puts "[+] Test2 Succeeded\n".green
|
27
|
-
rescue
|
28
|
-
puts '[!] Test2 failed'.red
|
29
|
-
end
|
30
|
-
|
31
|
-
# TEST 3
|
32
|
-
def test_create_user
|
33
|
-
puts '[-] Test3: testing create sample user data function'.cyan
|
34
|
-
payload = { 'OrgDefinedId' => '', # String
|
35
|
-
'FirstName' => 'TestUser', # String
|
36
|
-
'MiddleName' => 'Test', # String
|
37
|
-
'LastName' => 'Test', # String
|
38
|
-
'ExternalEmail' => nil, # String (nil or well-formed email addr)
|
39
|
-
'UserName' => 'test12345abcd', # String
|
40
|
-
'RoleId' => 110, # number
|
41
|
-
'IsActive' => false, # bool
|
42
|
-
'SendCreationEmail' => false, # bool
|
43
|
-
}
|
44
|
-
create_user_data(payload)
|
45
|
-
puts "[+] Test3 Succeeded\n".green
|
46
|
-
rescue => error
|
47
|
-
ap error
|
48
|
-
puts "[!] Test3 failed\n".red
|
49
|
-
# ap error.backtrace
|
50
|
-
end
|
51
|
-
|
52
|
-
# Test 4
|
53
|
-
def test_update_user
|
54
|
-
puts '[-] Test4: testing update sample user data function'.cyan
|
55
|
-
newData = {
|
56
|
-
'OrgDefinedId' => '',
|
57
|
-
'FirstName' => 'TestUser',
|
58
|
-
'MiddleName' => 'changedName',
|
59
|
-
'LastName' => 'Test',
|
60
|
-
'ExternalEmail' => nil,
|
61
|
-
'UserName' => 'test12345a',
|
62
|
-
'Activation' => {
|
63
|
-
'IsActive' => false
|
64
|
-
}
|
65
|
-
}
|
66
|
-
update_user_data(48558, newData) # TCP failed?
|
67
|
-
puts "[+] Test4 Succeeded\n".green
|
68
|
-
rescue => error
|
69
|
-
ap error
|
70
|
-
ap error.backtrace
|
71
|
-
puts "[!] Test4 failed\n".red
|
72
|
-
end
|
73
|
-
|
74
|
-
# Test 5
|
75
|
-
def test_who_another_user_is(id)
|
76
|
-
puts "[-] Test5: Getting Current User's Ability to view other user profiles".cyan
|
77
|
-
path = '/d2l/api/lp/1.4/users/' + id # '/d2l/api/lp/1.4/users/whoami'
|
78
|
-
http_method = 'GET'
|
79
|
-
test_uri = create_authenticated_uri(path, http_method)
|
80
|
-
puts '[-] Authenticated URI Created: ' + path
|
81
|
-
# General Brightspace API response behaviors
|
82
|
-
get_query(test_uri)
|
83
|
-
puts "[+] Test5 Succeeded\n".green
|
84
|
-
rescue
|
85
|
-
puts '[!] Test5 failed'.red
|
86
|
-
end
|
87
|
-
|
88
|
-
def test_search_by_username(username)
|
89
|
-
puts '[-] Test6: Using brightspace search functionality by UserName'.cyan
|
90
|
-
path = '/d2l/api/lp/1.4/users/' + '?UserName=' + username
|
91
|
-
http_method = 'GET'
|
92
|
-
test_uri = create_authenticated_uri(path, http_method)
|
93
|
-
puts '[-] Searching for: ' + username
|
94
|
-
# General Brightspace API response behaviors
|
95
|
-
get_query(test_uri)
|
96
|
-
puts "[+] Test6 Succeeded\n".green
|
97
|
-
rescue
|
98
|
-
puts '[!] Test6 failed'.red
|
99
|
-
end
|
100
|
-
|
101
|
-
# test_roles_viewing
|
102
|
-
# test_whoami
|
103
|
-
test_create_user
|
104
|
-
# test_update_user
|
105
|
-
# test_who_another_user_is('47906')
|
106
|
-
# test_search_by_username('test12345abc')
|