moodle_rb 2.0.0 → 2.1.5
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/README.md +13 -0
- data/lib/moodle_rb/courses.rb +33 -0
- data/lib/moodle_rb/version.rb +1 -1
- data/spec/cassettes/MoodleRb_Courses/_core_course_import_course/when_using_invalid_token/.yml +55 -0
- data/spec/cassettes/MoodleRb_Courses/_core_course_import_course/when_using_valid_token/.yml +54 -0
- data/spec/cassettes/MoodleRb_Courses/_core_course_import_course/when_using_valid_token/when_using_invalid_course_id/.yml +55 -0
- data/spec/cassettes/MoodleRb_Courses/_search/.yml +102 -0
- data/spec/cassettes/MoodleRb_Courses/_search/when_using_invalid_token/.yml +55 -0
- data/spec/lib/moodle_rb/courses_spec.rb +65 -0
- metadata +12 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: adea1a16244c97a8a745da9a7cffe186ed7e87f2d868376a86ac3d311797d183
|
4
|
+
data.tar.gz: f34de3627bb2146616461a200721edc75a51ab6ec37ab2c0e930d1f8924f26ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2469fd561371959c5d237c5a5cdc3ce1273587e0d9b430338812cc1bd0284497684ef801e2a3117515e82d5ef12ab6e1f3d4d8b03d698bab4b01a39167b7003
|
7
|
+
data.tar.gz: 9c352bc8f6e07efc68ed6a5c239fe4ce9220a6659f81a334153eef0af0d138eca98000457e8fe5e04719493ce967cacf47d1699e287ba2f18edd766869b25053
|
data/README.md
CHANGED
@@ -39,6 +39,11 @@ List all courses
|
|
39
39
|
moodle.courses.index
|
40
40
|
```
|
41
41
|
|
42
|
+
Search for a course by name
|
43
|
+
```
|
44
|
+
moodle.courses.search('My course')
|
45
|
+
```
|
46
|
+
|
42
47
|
Show a course
|
43
48
|
```
|
44
49
|
moodle.courses.show(course_id)
|
@@ -64,6 +69,14 @@ Get course module
|
|
64
69
|
moodle.courses.module(course_module_id)
|
65
70
|
```
|
66
71
|
|
72
|
+
Import course data from a course into another course
|
73
|
+
```
|
74
|
+
moodle.courses.core_course_import_course(
|
75
|
+
:from_course_id => from_course_id,
|
76
|
+
:to_course_id => to_course_id
|
77
|
+
)
|
78
|
+
```
|
79
|
+
|
67
80
|
### Categories
|
68
81
|
|
69
82
|
Create a category
|
data/lib/moodle_rb/courses.rb
CHANGED
@@ -22,6 +22,21 @@ module MoodleRb
|
|
22
22
|
response.parsed_response
|
23
23
|
end
|
24
24
|
|
25
|
+
# Search courses by (name, module, block, tag)
|
26
|
+
def search(criteria_value, criteria_name = 'search')
|
27
|
+
response = self.class.get(
|
28
|
+
'/webservice/rest/server.php',
|
29
|
+
{
|
30
|
+
:query => query_hash('core_course_search_courses', token).merge({
|
31
|
+
:criterianame => criteria_name,
|
32
|
+
:criteriavalue => criteria_value
|
33
|
+
})
|
34
|
+
}.merge(query_options)
|
35
|
+
)
|
36
|
+
check_for_errors(response)
|
37
|
+
response.parsed_response
|
38
|
+
end
|
39
|
+
|
25
40
|
# required params:
|
26
41
|
# full_name
|
27
42
|
# short_name
|
@@ -145,5 +160,23 @@ module MoodleRb
|
|
145
160
|
check_for_errors(response)
|
146
161
|
response.parsed_response['cm']
|
147
162
|
end
|
163
|
+
|
164
|
+
# required params:
|
165
|
+
# from_course_id: the id of the course we are importing from
|
166
|
+
# to_course_id: the id of the course we are importing to
|
167
|
+
def core_course_import_course(params)
|
168
|
+
response = self.class.post(
|
169
|
+
'/webservice/rest/server.php',
|
170
|
+
{
|
171
|
+
:query => query_hash('core_course_import_course', token),
|
172
|
+
:body => {
|
173
|
+
:importfrom => params[:from_course_id],
|
174
|
+
:importto => params[:to_course_id]
|
175
|
+
}
|
176
|
+
}.merge(query_options)
|
177
|
+
)
|
178
|
+
check_for_errors(response)
|
179
|
+
response.code == 200 && response.parsed_response.nil?
|
180
|
+
end
|
148
181
|
end
|
149
182
|
end
|
data/lib/moodle_rb/version.rb
CHANGED
@@ -0,0 +1,55 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_course_import_course&wstoken=
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: importfrom=&importto=
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Accept-Ranges:
|
22
|
+
- none
|
23
|
+
Access-Control-Allow-Origin:
|
24
|
+
- "*"
|
25
|
+
Age:
|
26
|
+
- '0'
|
27
|
+
Cache-Control:
|
28
|
+
- private, must-revalidate, pre-check=0, post-check=0, max-age=0
|
29
|
+
Content-Type:
|
30
|
+
- application/json
|
31
|
+
Date:
|
32
|
+
- Mon, 13 Feb 2023 02:46:46 GMT
|
33
|
+
Expires:
|
34
|
+
- Thu, 01 Jan 1970 00:00:00 GMT
|
35
|
+
Pragma:
|
36
|
+
- no-cache
|
37
|
+
Server:
|
38
|
+
- Moodle
|
39
|
+
X-Cache:
|
40
|
+
- MISS
|
41
|
+
X-Clacks-Overhead:
|
42
|
+
- GNU Terry Pratchett
|
43
|
+
X-Powered-By:
|
44
|
+
- Moodle Ninjas
|
45
|
+
Content-Length:
|
46
|
+
- '103'
|
47
|
+
Connection:
|
48
|
+
- keep-alive
|
49
|
+
body:
|
50
|
+
encoding: UTF-8
|
51
|
+
string: '{"exception":"moodle_exception","errorcode":"invalidtoken","message":"Invalid
|
52
|
+
token - token not found"}'
|
53
|
+
http_version:
|
54
|
+
recorded_at: Mon, 13 Feb 2023 02:46:46 GMT
|
55
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,54 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_course_import_course&wstoken=60fc9c9415259404795094957e4ab32f
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: importfrom=467&importto=468
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Accept-Ranges:
|
22
|
+
- none
|
23
|
+
Access-Control-Allow-Origin:
|
24
|
+
- "*"
|
25
|
+
Age:
|
26
|
+
- '0'
|
27
|
+
Cache-Control:
|
28
|
+
- private, must-revalidate, pre-check=0, post-check=0, max-age=0
|
29
|
+
Content-Type:
|
30
|
+
- application/json
|
31
|
+
Date:
|
32
|
+
- Mon, 13 Feb 2023 02:46:43 GMT
|
33
|
+
Expires:
|
34
|
+
- Thu, 01 Jan 1970 00:00:00 GMT
|
35
|
+
Pragma:
|
36
|
+
- no-cache
|
37
|
+
Server:
|
38
|
+
- Moodle
|
39
|
+
X-Cache:
|
40
|
+
- MISS
|
41
|
+
X-Clacks-Overhead:
|
42
|
+
- GNU Terry Pratchett
|
43
|
+
X-Powered-By:
|
44
|
+
- Moodle Ninjas
|
45
|
+
Content-Length:
|
46
|
+
- '4'
|
47
|
+
Connection:
|
48
|
+
- keep-alive
|
49
|
+
body:
|
50
|
+
encoding: UTF-8
|
51
|
+
string: 'null'
|
52
|
+
http_version:
|
53
|
+
recorded_at: Mon, 13 Feb 2023 02:46:44 GMT
|
54
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,55 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: post
|
5
|
+
uri: http://localhost:8888/moodle28/webservice/rest/server.php?moodlewsrestformat=json&wsfunction=core_course_import_course&wstoken=60fc9c9415259404795094957e4ab32f
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: importfrom=467&importto=-1
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Accept-Ranges:
|
22
|
+
- none
|
23
|
+
Access-Control-Allow-Origin:
|
24
|
+
- "*"
|
25
|
+
Age:
|
26
|
+
- '0'
|
27
|
+
Cache-Control:
|
28
|
+
- private, must-revalidate, pre-check=0, post-check=0, max-age=0
|
29
|
+
Content-Type:
|
30
|
+
- application/json
|
31
|
+
Date:
|
32
|
+
- Mon, 13 Feb 2023 02:46:45 GMT
|
33
|
+
Expires:
|
34
|
+
- Thu, 01 Jan 1970 00:00:00 GMT
|
35
|
+
Pragma:
|
36
|
+
- no-cache
|
37
|
+
Server:
|
38
|
+
- Moodle
|
39
|
+
X-Cache:
|
40
|
+
- MISS
|
41
|
+
X-Clacks-Overhead:
|
42
|
+
- GNU Terry Pratchett
|
43
|
+
X-Powered-By:
|
44
|
+
- Moodle Ninjas
|
45
|
+
Content-Length:
|
46
|
+
- '117'
|
47
|
+
Connection:
|
48
|
+
- keep-alive
|
49
|
+
body:
|
50
|
+
encoding: UTF-8
|
51
|
+
string: '{"exception":"moodle_exception","errorcode":"invalidcourseid","message":"You
|
52
|
+
are trying to use an invalid course ID"}'
|
53
|
+
http_version:
|
54
|
+
recorded_at: Mon, 13 Feb 2023 02:46:45 GMT
|
55
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,102 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://localhost:8888/moodle28/webservice/rest/server.php?criterianame=search&criteriavalue=My%20course&moodlewsrestformat=json&wsfunction=core_course_search_courses&wstoken=60fc9c9415259404795094957e4ab32f
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Accept-Ranges:
|
22
|
+
- bytes
|
23
|
+
Access-Control-Allow-Origin:
|
24
|
+
- "*"
|
25
|
+
Age:
|
26
|
+
- '0'
|
27
|
+
Cache-Control:
|
28
|
+
- private, must-revalidate, pre-check=0, post-check=0, max-age=0
|
29
|
+
Content-Type:
|
30
|
+
- application/json
|
31
|
+
Date:
|
32
|
+
- Wed, 11 May 2022 03:43:20 GMT
|
33
|
+
Expires:
|
34
|
+
- Thu, 01 Jan 1970 00:00:00 GMT
|
35
|
+
Pragma:
|
36
|
+
- no-cache
|
37
|
+
Server:
|
38
|
+
- Moodle
|
39
|
+
X-Cache:
|
40
|
+
- MISS
|
41
|
+
X-Clacks-Overhead:
|
42
|
+
- GNU Terry Pratchett
|
43
|
+
X-Powered-By:
|
44
|
+
- Moodle Ninjas
|
45
|
+
Content-Length:
|
46
|
+
- '3946'
|
47
|
+
Connection:
|
48
|
+
- keep-alive
|
49
|
+
body:
|
50
|
+
encoding: UTF-8
|
51
|
+
string: '{"total":1,"courses":[{"id":316,"fullname":"My large course","displayname":"My
|
52
|
+
large course","shortname":"MLC","categoryid":8,"categoryname":"VETtrak testing","sortorder":50002,"summary":"Test
|
53
|
+
course 1<br \/>\nLorem ipsum dolor sit amet, consectetuer adipiscing elit.
|
54
|
+
Nulla non arcu lacinia neque faucibus fringilla. Vivamus porttitor turpis
|
55
|
+
ac leo. Integer in sapien. Nullam eget nisl. Aliquam erat volutpat. Cras elementum.
|
56
|
+
Mauris suscipit, ligula sit amet pharetra semper, nibh ante cursus purus,
|
57
|
+
vel sagittis velit mauris vel metus. Integer malesuada. Nullam lectus justo,
|
58
|
+
vulputate eget mollis sed, tempor sed magna. Mauris elementum mauris vitae
|
59
|
+
tortor. Aliquam erat volutpat.<br \/>\nTemporibus autem quibusdam et aut officiis
|
60
|
+
debitis aut rerum necessitatibus saepe eveniet ut et voluptates repudiandae
|
61
|
+
sint et molestiae non recusandae. Pellentesque ipsum. Cras pede libero, dapibus
|
62
|
+
nec, pretium sit amet, tempor quis. Aliquam ante. Proin in tellus sit amet
|
63
|
+
nibh dignissim sagittis. Vivamus porttitor turpis ac leo. Duis bibendum, lectus
|
64
|
+
ut viverra rhoncus, dolor nunc faucibus libero, eget facilisis enim ipsum
|
65
|
+
id lacus. In sem justo, commodo ut, suscipit at, pharetra vitae, orci. Aliquam
|
66
|
+
erat volutpat. Nulla est.<br \/>\nVivamus luctus egestas leo. Aenean fermentum
|
67
|
+
risus id tortor. Mauris dictum facilisis augue. Aliquam erat volutpat. Aliquam
|
68
|
+
ornare wisi eu metus. Aliquam id dolor. Duis condimentum augue id magna semper
|
69
|
+
rutrum. Donec iaculis gravida nulla. Pellentesque ipsum. Etiam dictum tincidunt
|
70
|
+
diam. Quisque tincidunt scelerisque libero. Etiam egestas wisi a erat.<br
|
71
|
+
\/>\nInteger lacinia. Cum sociis natoque penatibus et magnis dis parturient
|
72
|
+
montes, nascetur ridiculus mus. Mauris tincidunt sem sed arcu. Nullam feugiat,
|
73
|
+
turpis at pulvinar vulputate, erat libero tristique tellus, nec bibendum odio
|
74
|
+
risus sit amet ante. Aliquam id dolor. Maecenas sollicitudin. Et harum quidem
|
75
|
+
rerum facilis est et expedita distinctio. Mauris suscipit, ligula sit amet
|
76
|
+
pharetra semper, nibh ante cursus purus, vel sagittis velit mauris vel metus.
|
77
|
+
Nullam dapibus fermentum ipsum. Pellentesque habitant morbi tristique senectus
|
78
|
+
et netus et malesuada fames ac turpis egestas. Nemo enim ipsam voluptatem
|
79
|
+
quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni
|
80
|
+
dolores eos qui ratione voluptatem sequi nesciunt. Pellentesque sapien. Duis
|
81
|
+
risus. Mauris elementum mauris vitae tortor. Suspendisse nisl. Integer rutrum,
|
82
|
+
orci vestibulum ullamcorper ultricies, lacus quam ultricies odio, vitae placerat
|
83
|
+
pede sem sit amet enim.<br \/>\nIn laoreet, magna id viverra tincidunt, sem
|
84
|
+
odio bibendum justo, vel imperdiet sapien wisi sed libero. Proin pede metus,
|
85
|
+
vulputate nec, fermentum fringilla, vehicula vitae, justo. Nullam justo enim,
|
86
|
+
consectetuer nec, ullamcorper ac, vestibulum in, elit. Quis autem vel eum
|
87
|
+
iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur,
|
88
|
+
vel illum qui dolorem eum fugiat quo voluptas nulla pariatur? Maecenas lorem.
|
89
|
+
Etiam posuere lacus quis dolor. Class aptent taciti sociosqu ad litora torquent
|
90
|
+
per conubia nostra, per inceptos hymenaeos. Curabitur ligula sapien, pulvinar
|
91
|
+
a vestibulum quis, facilisis vel sapien. Nam sed tellus id magna elementum
|
92
|
+
tincidunt. Suspendisse nisl. Vivamus luctus egestas leo. Nulla non arcu lacinia
|
93
|
+
neque faucibus fringilla. Etiam dui sem, fermentum vitae, sagittis id, malesuada
|
94
|
+
in, quam. Etiam dictum tincidunt diam. Etiam commodo dui eget wisi. Nemo enim
|
95
|
+
ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia
|
96
|
+
consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Proin
|
97
|
+
pede metus, vulputate nec, fermentum fringilla, vehicula vitae, justo. Duis
|
98
|
+
ante orci, molestie vitae vehicula venenatis, tincidunt ac pede. Pellentesque
|
99
|
+
sapien.","summaryformat":1,"summaryfiles":[],"overviewfiles":[],"showactivitydates":true,"showcompletionconditions":true,"contacts":[],"enrollmentmethods":["manual"]}],"warnings":[]}'
|
100
|
+
http_version:
|
101
|
+
recorded_at: Wed, 11 May 2022 03:42:46 GMT
|
102
|
+
recorded_with: VCR 2.9.3
|
@@ -0,0 +1,55 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://localhost:8888/moodle28/webservice/rest/server.php?criterianame=search&criteriavalue=My%20course&moodlewsrestformat=json&wsfunction=core_course_search_courses&wstoken=
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Accept-Encoding:
|
11
|
+
- gzip;q=1.0,deflate;q=0.6,identity;q=0.3
|
12
|
+
Accept:
|
13
|
+
- "*/*"
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Accept-Ranges:
|
22
|
+
- bytes
|
23
|
+
Access-Control-Allow-Origin:
|
24
|
+
- "*"
|
25
|
+
Age:
|
26
|
+
- '0'
|
27
|
+
Cache-Control:
|
28
|
+
- private, must-revalidate, pre-check=0, post-check=0, max-age=0
|
29
|
+
Content-Type:
|
30
|
+
- application/json
|
31
|
+
Date:
|
32
|
+
- Wed, 11 May 2022 03:43:20 GMT
|
33
|
+
Expires:
|
34
|
+
- Thu, 01 Jan 1970 00:00:00 GMT
|
35
|
+
Pragma:
|
36
|
+
- no-cache
|
37
|
+
Server:
|
38
|
+
- Moodle
|
39
|
+
X-Cache:
|
40
|
+
- MISS
|
41
|
+
X-Clacks-Overhead:
|
42
|
+
- GNU Terry Pratchett
|
43
|
+
X-Powered-By:
|
44
|
+
- Moodle Ninjas
|
45
|
+
Content-Length:
|
46
|
+
- '103'
|
47
|
+
Connection:
|
48
|
+
- keep-alive
|
49
|
+
body:
|
50
|
+
encoding: UTF-8
|
51
|
+
string: '{"exception":"moodle_exception","errorcode":"invalidtoken","message":"Invalid
|
52
|
+
token - token not found"}'
|
53
|
+
http_version:
|
54
|
+
recorded_at: Wed, 11 May 2022 03:42:46 GMT
|
55
|
+
recorded_with: VCR 2.9.3
|
@@ -36,6 +36,27 @@ describe MoodleRb::Courses do
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
+
describe '#search', :vcr => {
|
40
|
+
:match_requests_on => [:body, :path], :record => :once
|
41
|
+
} do
|
42
|
+
let(:result) { course_moodle_rb.search('My course') }
|
43
|
+
|
44
|
+
specify do
|
45
|
+
expect(result["total"]).to eq 1
|
46
|
+
expect(result["courses"]).to be_a Array
|
47
|
+
end
|
48
|
+
|
49
|
+
context 'when using invalid token' do
|
50
|
+
let(:token) { '' }
|
51
|
+
specify do
|
52
|
+
expect{ course_moodle_rb.search('My course') }.to raise_error(
|
53
|
+
MoodleRb::MoodleError,
|
54
|
+
'Invalid token - token not found'
|
55
|
+
)
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
39
60
|
describe '#create', :vcr => {
|
40
61
|
:match_requests_on => [:path], :record => :once
|
41
62
|
} do
|
@@ -226,4 +247,48 @@ describe MoodleRb::Courses do
|
|
226
247
|
end
|
227
248
|
end
|
228
249
|
end
|
250
|
+
|
251
|
+
describe '#core_course_import_course', :vcr => {
|
252
|
+
:match_requests_on => [:path], :record => :once
|
253
|
+
} do
|
254
|
+
context 'when using valid token' do
|
255
|
+
let(:params) do
|
256
|
+
{
|
257
|
+
:from_course_id => 467,
|
258
|
+
:to_course_id => 468
|
259
|
+
}
|
260
|
+
end
|
261
|
+
let(:result) { course_moodle_rb.core_course_import_course(params) }
|
262
|
+
|
263
|
+
specify do
|
264
|
+
expect(result).to eq true
|
265
|
+
end
|
266
|
+
|
267
|
+
context 'when using invalid course id' do
|
268
|
+
let(:params) do
|
269
|
+
{
|
270
|
+
:from_course_id => 467,
|
271
|
+
:to_course_id => -1
|
272
|
+
}
|
273
|
+
end
|
274
|
+
|
275
|
+
specify do
|
276
|
+
expect{ course_moodle_rb.core_course_import_course(params) }.to raise_error(
|
277
|
+
MoodleRb::MoodleError,
|
278
|
+
'You are trying to use an invalid course ID'
|
279
|
+
)
|
280
|
+
end
|
281
|
+
end
|
282
|
+
end
|
283
|
+
|
284
|
+
context 'when using invalid token' do
|
285
|
+
let(:token) { '' }
|
286
|
+
specify do
|
287
|
+
expect{ course_moodle_rb.core_course_import_course({}) }.to raise_error(
|
288
|
+
MoodleRb::MoodleError,
|
289
|
+
'Invalid token - token not found'
|
290
|
+
)
|
291
|
+
end
|
292
|
+
end
|
293
|
+
end
|
229
294
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moodle_rb
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sam Giffney
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-02-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -134,6 +134,9 @@ files:
|
|
134
134
|
- spec/cassettes/MoodleRb_Client/_site_info/when_valid_token/.yml
|
135
135
|
- spec/cassettes/MoodleRb_Courses/_contents/when_using_invalid_token/.yml
|
136
136
|
- spec/cassettes/MoodleRb_Courses/_contents/when_using_valid_token/.yml
|
137
|
+
- spec/cassettes/MoodleRb_Courses/_core_course_import_course/when_using_invalid_token/.yml
|
138
|
+
- spec/cassettes/MoodleRb_Courses/_core_course_import_course/when_using_valid_token/.yml
|
139
|
+
- spec/cassettes/MoodleRb_Courses/_core_course_import_course/when_using_valid_token/when_using_invalid_course_id/.yml
|
137
140
|
- spec/cassettes/MoodleRb_Courses/_create/.yml
|
138
141
|
- spec/cassettes/MoodleRb_Courses/_create/when_validation_fails/.yml
|
139
142
|
- spec/cassettes/MoodleRb_Courses/_destroy/when_using_invalid_token/.yml
|
@@ -147,6 +150,8 @@ files:
|
|
147
150
|
- spec/cassettes/MoodleRb_Courses/_index/when_using_invalid_token/.yml
|
148
151
|
- spec/cassettes/MoodleRb_Courses/_module/when_using_invalid_token/.yml
|
149
152
|
- spec/cassettes/MoodleRb_Courses/_module/when_using_valid_token/.yml
|
153
|
+
- spec/cassettes/MoodleRb_Courses/_search/.yml
|
154
|
+
- spec/cassettes/MoodleRb_Courses/_search/when_using_invalid_token/.yml
|
150
155
|
- spec/cassettes/MoodleRb_Courses/_show/.yml
|
151
156
|
- spec/cassettes/MoodleRb_Courses/_show/when_using_invalid_token/.yml
|
152
157
|
- spec/cassettes/MoodleRb_Enrolments/_create/.yml
|
@@ -217,6 +222,9 @@ test_files:
|
|
217
222
|
- spec/cassettes/MoodleRb_Client/_site_info/when_valid_token/.yml
|
218
223
|
- spec/cassettes/MoodleRb_Courses/_contents/when_using_invalid_token/.yml
|
219
224
|
- spec/cassettes/MoodleRb_Courses/_contents/when_using_valid_token/.yml
|
225
|
+
- spec/cassettes/MoodleRb_Courses/_core_course_import_course/when_using_invalid_token/.yml
|
226
|
+
- spec/cassettes/MoodleRb_Courses/_core_course_import_course/when_using_valid_token/.yml
|
227
|
+
- spec/cassettes/MoodleRb_Courses/_core_course_import_course/when_using_valid_token/when_using_invalid_course_id/.yml
|
220
228
|
- spec/cassettes/MoodleRb_Courses/_create/.yml
|
221
229
|
- spec/cassettes/MoodleRb_Courses/_create/when_validation_fails/.yml
|
222
230
|
- spec/cassettes/MoodleRb_Courses/_destroy/when_using_invalid_token/.yml
|
@@ -230,6 +238,8 @@ test_files:
|
|
230
238
|
- spec/cassettes/MoodleRb_Courses/_index/when_using_invalid_token/.yml
|
231
239
|
- spec/cassettes/MoodleRb_Courses/_module/when_using_invalid_token/.yml
|
232
240
|
- spec/cassettes/MoodleRb_Courses/_module/when_using_valid_token/.yml
|
241
|
+
- spec/cassettes/MoodleRb_Courses/_search/.yml
|
242
|
+
- spec/cassettes/MoodleRb_Courses/_search/when_using_invalid_token/.yml
|
233
243
|
- spec/cassettes/MoodleRb_Courses/_show/.yml
|
234
244
|
- spec/cassettes/MoodleRb_Courses/_show/when_using_invalid_token/.yml
|
235
245
|
- spec/cassettes/MoodleRb_Enrolments/_create/.yml
|