qti 2.2.0 → 2.5.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/qti.rb +1 -0
- data/lib/qti/models/assessment_meta.rb +16 -12
- data/lib/qti/models/resource.rb +26 -2
- data/lib/qti/v1/models/assessment_item.rb +4 -0
- data/lib/qti/v1/models/interactions/base_fill_blank_interaction.rb +33 -1
- data/lib/qti/v1/models/interactions/canvas_multiple_dropdown.rb +2 -29
- data/lib/qti/v1/models/object_bank.rb +14 -0
- data/lib/qti/version.rb +1 -1
- data/spec/fixtures/items_1.2/canvas_multiple_fib_extra_brackets.xml +244 -0
- data/spec/fixtures/{test_qti_1.2_canvas_extended → test_qti_1.2_canvas_extended_1}/gba044ae1fc7cfd3dc413e0df695e0068/assessment_meta.xml +0 -0
- data/spec/fixtures/{test_qti_1.2_canvas_extended → test_qti_1.2_canvas_extended_1}/gba044ae1fc7cfd3dc413e0df695e0068/gba044ae1fc7cfd3dc413e0df695e0068.xml +0 -0
- data/spec/fixtures/{test_qti_1.2_canvas_extended → test_qti_1.2_canvas_extended_1}/imsmanifest.xml +0 -0
- data/spec/fixtures/test_qti_1.2_canvas_extended_2/gba044ae1fc7cfd3dc413e0df695e0068/assessment_meta.xml +76 -0
- data/spec/fixtures/test_qti_1.2_canvas_extended_2/gba044ae1fc7cfd3dc413e0df695e0068/gba044ae1fc7cfd3dc413e0df695e0068.xml +17 -0
- data/spec/fixtures/test_qti_1.2_canvas_extended_2/imsmanifest.xml +39 -0
- data/spec/fixtures/with_banks/g9a20cf3af178b54e4792cbe992f65790/assessment_meta.xml +69 -0
- data/spec/fixtures/with_banks/g9a20cf3af178b54e4792cbe992f65790/assessment_qti.xml +99 -0
- data/spec/fixtures/with_banks/imsmanifest.xml +54 -0
- data/spec/fixtures/with_banks/non_cc_assessments/g195e078fb6e3c4054e38e5c9226287ba.xml.qti +85 -0
- data/spec/fixtures/with_banks/non_cc_assessments/g9a20cf3af178b54e4792cbe992f65790.xml.qti +107 -0
- data/spec/fixtures/with_banks/non_cc_assessments/gab22de457404cb5cf022078f1e4da75e.xml.qti +59 -0
- data/spec/fixtures/with_banks/non_cc_assessments/gf3edf8167be16b3a65a00ca923132b07.xml.qti +145 -0
- data/spec/lib/qti/models/assessment_meta_spec.rb +39 -1
- data/spec/lib/qti/models/resource_spec.rb +14 -0
- data/spec/lib/qti/v1/models/interactions/base_fill_blank_interaction_spec.rb +146 -0
- data/spec/lib/qti/v1/models/interactions/canvas_multiple_dropdown_spec.rb +0 -27
- data/spec/lib/qti/v1/models/object_bank_spec.rb +39 -0
- metadata +36 -9
@@ -10,12 +10,6 @@ describe Qti::V1::Models::Interactions::CanvasMultipleDropdownInteraction do
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
-
shared_examples_for 'blanks' do
|
14
|
-
it 'returns the blanks' do
|
15
|
-
expect(loaded_class.blanks).to eq(expected_blanks)
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
13
|
shared_examples_for 'answers' do
|
20
14
|
it 'returns the answers' do
|
21
15
|
expect(loaded_class.answers.count).to eq answer_count
|
@@ -47,26 +41,6 @@ describe Qti::V1::Models::Interactions::CanvasMultipleDropdownInteraction do
|
|
47
41
|
{ id: '6951', position: 2, item_body: 'blue' }
|
48
42
|
]
|
49
43
|
end
|
50
|
-
let(:expected_blanks) do
|
51
|
-
[
|
52
|
-
{
|
53
|
-
id: 'response_color1',
|
54
|
-
choices:
|
55
|
-
[
|
56
|
-
{ id: '6548', position: 2, item_body: 'red' },
|
57
|
-
{ id: '5550', position: 3, item_body: 'plaid' }
|
58
|
-
]
|
59
|
-
},
|
60
|
-
{
|
61
|
-
id: 'response_color2',
|
62
|
-
choices:
|
63
|
-
[
|
64
|
-
{ id: '6951', position: 2, item_body: 'blue' },
|
65
|
-
{ id: '4500', position: 3, item_body: 'paisely' }
|
66
|
-
]
|
67
|
-
}
|
68
|
-
]
|
69
|
-
end
|
70
44
|
let(:expected_stem_items) do
|
71
45
|
[
|
72
46
|
{ id: 'stem_0', position: 1, type: 'text', value: '<div><p>Roses are ' },
|
@@ -97,7 +71,6 @@ describe Qti::V1::Models::Interactions::CanvasMultipleDropdownInteraction do
|
|
97
71
|
|
98
72
|
include_examples 'shuffled?'
|
99
73
|
include_examples 'answers'
|
100
|
-
include_examples 'blanks'
|
101
74
|
include_examples 'stem_items'
|
102
75
|
include_examples 'scoring_data_structs'
|
103
76
|
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
describe Qti::V1::Models::ObjectBank do
|
2
|
+
describe 'bank loading' do
|
3
|
+
[
|
4
|
+
'gf3edf8167be16b3a65a00ca923132b07.xml.qti',
|
5
|
+
'g195e078fb6e3c4054e38e5c9226287ba.xml.qti',
|
6
|
+
'gab22de457404cb5cf022078f1e4da75e.xml.qti'
|
7
|
+
].each do |bankfile|
|
8
|
+
file = File.join('spec', 'fixtures', 'with_banks', 'non_cc_assessments', bankfile)
|
9
|
+
context "File: #{file}" do
|
10
|
+
it 'parses the objectbank without error' do
|
11
|
+
expect do
|
12
|
+
bank = described_class.from_path!(file)
|
13
|
+
expect(bank.assessment_items) # at least one
|
14
|
+
end.not_to raise_error
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe '#title' do
|
21
|
+
it 'missing bank_title defaults to filename' do
|
22
|
+
allow(File).to receive(:read).and_return(<<~XML)
|
23
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
24
|
+
<questestinterop xmlns="http://www.imsglobal.org/xsd/ims_qtiasiv1p2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.imsglobal.org/xsd/ims_qtiasiv1p2 http://www.imsglobal.org/xsd/ims_qtiasiv1p2p1.xsd">
|
25
|
+
<objectbank ident="gooblegobble12345">
|
26
|
+
<qtimetadata>
|
27
|
+
<qtimetadatafield>
|
28
|
+
<fieldlabel>not_a_bank_title</fieldlabel>
|
29
|
+
<fieldentry>A different metadata entry</fieldentry>
|
30
|
+
</qtimetadatafield>
|
31
|
+
</qtimetadata>
|
32
|
+
</objectbank>
|
33
|
+
</questestinterop>
|
34
|
+
XML
|
35
|
+
objectbank = described_class.new path: '/etc/FakeBank007.xml'
|
36
|
+
expect(objectbank.title).to eq 'FakeBank007'
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: qti
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Hannah Bottalla
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2021-05-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: actionview
|
@@ -312,6 +312,7 @@ files:
|
|
312
312
|
- lib/qti/v1/models/numerics/scoring_data.rb
|
313
313
|
- lib/qti/v1/models/numerics/scoring_node.rb
|
314
314
|
- lib/qti/v1/models/numerics/within_range.rb
|
315
|
+
- lib/qti/v1/models/object_bank.rb
|
315
316
|
- lib/qti/v1/models/question_group.rb
|
316
317
|
- lib/qti/v1/models/scoring_data.rb
|
317
318
|
- lib/qti/v1/models/stimulus_item.rb
|
@@ -355,6 +356,7 @@ files:
|
|
355
356
|
- spec/fixtures/items_1.2/canvas_multiple_dropdowns.xml
|
356
357
|
- spec/fixtures/items_1.2/canvas_multiple_fib.xml
|
357
358
|
- spec/fixtures/items_1.2/canvas_multiple_fib_as_single.xml
|
359
|
+
- spec/fixtures/items_1.2/canvas_multiple_fib_extra_brackets.xml
|
358
360
|
- spec/fixtures/items_1.2/choice.xml
|
359
361
|
- spec/fixtures/items_1.2/essay.xml
|
360
362
|
- spec/fixtures/items_1.2/fib.xml
|
@@ -510,9 +512,12 @@ files:
|
|
510
512
|
- spec/fixtures/test_qti_1.2_canvas/i00f37ac2af026e5a607e4a5d9a70b1d5/assessment_meta.xml
|
511
513
|
- spec/fixtures/test_qti_1.2_canvas/i00f37ac2af026e5a607e4a5d9a70b1d5/i00f37ac2af026e5a607e4a5d9a70b1d5.xml
|
512
514
|
- spec/fixtures/test_qti_1.2_canvas/imsmanifest.xml
|
513
|
-
- spec/fixtures/test_qti_1.
|
514
|
-
- spec/fixtures/test_qti_1.
|
515
|
-
- spec/fixtures/test_qti_1.
|
515
|
+
- spec/fixtures/test_qti_1.2_canvas_extended_1/gba044ae1fc7cfd3dc413e0df695e0068/assessment_meta.xml
|
516
|
+
- spec/fixtures/test_qti_1.2_canvas_extended_1/gba044ae1fc7cfd3dc413e0df695e0068/gba044ae1fc7cfd3dc413e0df695e0068.xml
|
517
|
+
- spec/fixtures/test_qti_1.2_canvas_extended_1/imsmanifest.xml
|
518
|
+
- spec/fixtures/test_qti_1.2_canvas_extended_2/gba044ae1fc7cfd3dc413e0df695e0068/assessment_meta.xml
|
519
|
+
- spec/fixtures/test_qti_1.2_canvas_extended_2/gba044ae1fc7cfd3dc413e0df695e0068/gba044ae1fc7cfd3dc413e0df695e0068.xml
|
520
|
+
- spec/fixtures/test_qti_1.2_canvas_extended_2/imsmanifest.xml
|
516
521
|
- spec/fixtures/test_qti_1.2_multi/i913965373124f56ca136e87deb040c03/assessment_meta.xml
|
517
522
|
- spec/fixtures/test_qti_1.2_multi/i913965373124f56ca136e87deb040c03/i913965373124f56ca136e87deb040c03.xml
|
518
523
|
- spec/fixtures/test_qti_1.2_multi/ife643a8a04b48b22acab95de6c01f1cc/assessment_meta.xml
|
@@ -601,6 +606,13 @@ files:
|
|
601
606
|
- spec/fixtures/tests/tests/rtest26.xml
|
602
607
|
- spec/fixtures/tests/tests/rtest27.xml
|
603
608
|
- spec/fixtures/unsupported_version/imsmanifest.xml
|
609
|
+
- spec/fixtures/with_banks/g9a20cf3af178b54e4792cbe992f65790/assessment_meta.xml
|
610
|
+
- spec/fixtures/with_banks/g9a20cf3af178b54e4792cbe992f65790/assessment_qti.xml
|
611
|
+
- spec/fixtures/with_banks/imsmanifest.xml
|
612
|
+
- spec/fixtures/with_banks/non_cc_assessments/g195e078fb6e3c4054e38e5c9226287ba.xml.qti
|
613
|
+
- spec/fixtures/with_banks/non_cc_assessments/g9a20cf3af178b54e4792cbe992f65790.xml.qti
|
614
|
+
- spec/fixtures/with_banks/non_cc_assessments/gab22de457404cb5cf022078f1e4da75e.xml.qti
|
615
|
+
- spec/fixtures/with_banks/non_cc_assessments/gf3edf8167be16b3a65a00ca923132b07.xml.qti
|
604
616
|
- spec/gemfiles/rails-5.1.gemfile
|
605
617
|
- spec/gemfiles/rails-5.2.gemfile
|
606
618
|
- spec/gemfiles/rails-6.0.gemfile
|
@@ -615,6 +627,7 @@ files:
|
|
615
627
|
- spec/lib/qti/v1/models/assessment_spec.rb
|
616
628
|
- spec/lib/qti/v1/models/choices/fill_blank_choice_spec.rb
|
617
629
|
- spec/lib/qti/v1/models/choices/logical_identifier_choice_spec.rb
|
630
|
+
- spec/lib/qti/v1/models/interactions/base_fill_blank_interaction_spec.rb
|
618
631
|
- spec/lib/qti/v1/models/interactions/base_interaction_spec.rb
|
619
632
|
- spec/lib/qti/v1/models/interactions/canvas_multiple_dropdown_spec.rb
|
620
633
|
- spec/lib/qti/v1/models/interactions/choice_interaction_spec.rb
|
@@ -632,6 +645,7 @@ files:
|
|
632
645
|
- spec/lib/qti/v1/models/numerics/scoring_base_spec.rb
|
633
646
|
- spec/lib/qti/v1/models/numerics/scoring_node_spec.rb
|
634
647
|
- spec/lib/qti/v1/models/numerics/within_range_spec.rb
|
648
|
+
- spec/lib/qti/v1/models/object_bank_spec.rb
|
635
649
|
- spec/lib/qti/v1/models/question_group_spec.rb
|
636
650
|
- spec/lib/qti/v1/models/stimulus_item_spec.rb
|
637
651
|
- spec/lib/qti/v2/models/assessment_item_spec.rb
|
@@ -671,7 +685,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
671
685
|
- !ruby/object:Gem::Version
|
672
686
|
version: '0'
|
673
687
|
requirements: []
|
674
|
-
rubygems_version: 3.0.
|
688
|
+
rubygems_version: 3.0.3
|
675
689
|
signing_key:
|
676
690
|
specification_version: 4
|
677
691
|
summary: QTI 1.2 and 2.1 import and export models
|
@@ -694,6 +708,7 @@ test_files:
|
|
694
708
|
- spec/fixtures/items_1.2/canvas_multiple_dropdowns.xml
|
695
709
|
- spec/fixtures/items_1.2/canvas_multiple_fib.xml
|
696
710
|
- spec/fixtures/items_1.2/canvas_multiple_fib_as_single.xml
|
711
|
+
- spec/fixtures/items_1.2/canvas_multiple_fib_extra_brackets.xml
|
697
712
|
- spec/fixtures/items_1.2/choice.xml
|
698
713
|
- spec/fixtures/items_1.2/essay.xml
|
699
714
|
- spec/fixtures/items_1.2/fib.xml
|
@@ -849,9 +864,12 @@ test_files:
|
|
849
864
|
- spec/fixtures/test_qti_1.2_canvas/i00f37ac2af026e5a607e4a5d9a70b1d5/assessment_meta.xml
|
850
865
|
- spec/fixtures/test_qti_1.2_canvas/i00f37ac2af026e5a607e4a5d9a70b1d5/i00f37ac2af026e5a607e4a5d9a70b1d5.xml
|
851
866
|
- spec/fixtures/test_qti_1.2_canvas/imsmanifest.xml
|
852
|
-
- spec/fixtures/test_qti_1.
|
853
|
-
- spec/fixtures/test_qti_1.
|
854
|
-
- spec/fixtures/test_qti_1.
|
867
|
+
- spec/fixtures/test_qti_1.2_canvas_extended_1/gba044ae1fc7cfd3dc413e0df695e0068/assessment_meta.xml
|
868
|
+
- spec/fixtures/test_qti_1.2_canvas_extended_1/gba044ae1fc7cfd3dc413e0df695e0068/gba044ae1fc7cfd3dc413e0df695e0068.xml
|
869
|
+
- spec/fixtures/test_qti_1.2_canvas_extended_1/imsmanifest.xml
|
870
|
+
- spec/fixtures/test_qti_1.2_canvas_extended_2/gba044ae1fc7cfd3dc413e0df695e0068/assessment_meta.xml
|
871
|
+
- spec/fixtures/test_qti_1.2_canvas_extended_2/gba044ae1fc7cfd3dc413e0df695e0068/gba044ae1fc7cfd3dc413e0df695e0068.xml
|
872
|
+
- spec/fixtures/test_qti_1.2_canvas_extended_2/imsmanifest.xml
|
855
873
|
- spec/fixtures/test_qti_1.2_multi/i913965373124f56ca136e87deb040c03/assessment_meta.xml
|
856
874
|
- spec/fixtures/test_qti_1.2_multi/i913965373124f56ca136e87deb040c03/i913965373124f56ca136e87deb040c03.xml
|
857
875
|
- spec/fixtures/test_qti_1.2_multi/ife643a8a04b48b22acab95de6c01f1cc/assessment_meta.xml
|
@@ -940,6 +958,13 @@ test_files:
|
|
940
958
|
- spec/fixtures/tests/tests/rtest26.xml
|
941
959
|
- spec/fixtures/tests/tests/rtest27.xml
|
942
960
|
- spec/fixtures/unsupported_version/imsmanifest.xml
|
961
|
+
- spec/fixtures/with_banks/g9a20cf3af178b54e4792cbe992f65790/assessment_meta.xml
|
962
|
+
- spec/fixtures/with_banks/g9a20cf3af178b54e4792cbe992f65790/assessment_qti.xml
|
963
|
+
- spec/fixtures/with_banks/imsmanifest.xml
|
964
|
+
- spec/fixtures/with_banks/non_cc_assessments/g195e078fb6e3c4054e38e5c9226287ba.xml.qti
|
965
|
+
- spec/fixtures/with_banks/non_cc_assessments/g9a20cf3af178b54e4792cbe992f65790.xml.qti
|
966
|
+
- spec/fixtures/with_banks/non_cc_assessments/gab22de457404cb5cf022078f1e4da75e.xml.qti
|
967
|
+
- spec/fixtures/with_banks/non_cc_assessments/gf3edf8167be16b3a65a00ca923132b07.xml.qti
|
943
968
|
- spec/gemfiles/rails-5.1.gemfile
|
944
969
|
- spec/gemfiles/rails-5.2.gemfile
|
945
970
|
- spec/gemfiles/rails-6.0.gemfile
|
@@ -954,6 +979,7 @@ test_files:
|
|
954
979
|
- spec/lib/qti/v1/models/assessment_spec.rb
|
955
980
|
- spec/lib/qti/v1/models/choices/fill_blank_choice_spec.rb
|
956
981
|
- spec/lib/qti/v1/models/choices/logical_identifier_choice_spec.rb
|
982
|
+
- spec/lib/qti/v1/models/interactions/base_fill_blank_interaction_spec.rb
|
957
983
|
- spec/lib/qti/v1/models/interactions/base_interaction_spec.rb
|
958
984
|
- spec/lib/qti/v1/models/interactions/canvas_multiple_dropdown_spec.rb
|
959
985
|
- spec/lib/qti/v1/models/interactions/choice_interaction_spec.rb
|
@@ -971,6 +997,7 @@ test_files:
|
|
971
997
|
- spec/lib/qti/v1/models/numerics/scoring_base_spec.rb
|
972
998
|
- spec/lib/qti/v1/models/numerics/scoring_node_spec.rb
|
973
999
|
- spec/lib/qti/v1/models/numerics/within_range_spec.rb
|
1000
|
+
- spec/lib/qti/v1/models/object_bank_spec.rb
|
974
1001
|
- spec/lib/qti/v1/models/question_group_spec.rb
|
975
1002
|
- spec/lib/qti/v1/models/stimulus_item_spec.rb
|
976
1003
|
- spec/lib/qti/v2/models/assessment_item_spec.rb
|