qti 2.2.0 → 2.5.1

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.
Files changed (29) hide show
  1. checksums.yaml +4 -4
  2. data/lib/qti.rb +1 -0
  3. data/lib/qti/models/assessment_meta.rb +16 -12
  4. data/lib/qti/models/resource.rb +26 -2
  5. data/lib/qti/v1/models/assessment_item.rb +4 -0
  6. data/lib/qti/v1/models/interactions/base_fill_blank_interaction.rb +33 -1
  7. data/lib/qti/v1/models/interactions/canvas_multiple_dropdown.rb +2 -29
  8. data/lib/qti/v1/models/object_bank.rb +14 -0
  9. data/lib/qti/version.rb +1 -1
  10. data/spec/fixtures/items_1.2/canvas_multiple_fib_extra_brackets.xml +244 -0
  11. data/spec/fixtures/{test_qti_1.2_canvas_extended → test_qti_1.2_canvas_extended_1}/gba044ae1fc7cfd3dc413e0df695e0068/assessment_meta.xml +0 -0
  12. data/spec/fixtures/{test_qti_1.2_canvas_extended → test_qti_1.2_canvas_extended_1}/gba044ae1fc7cfd3dc413e0df695e0068/gba044ae1fc7cfd3dc413e0df695e0068.xml +0 -0
  13. data/spec/fixtures/{test_qti_1.2_canvas_extended → test_qti_1.2_canvas_extended_1}/imsmanifest.xml +0 -0
  14. data/spec/fixtures/test_qti_1.2_canvas_extended_2/gba044ae1fc7cfd3dc413e0df695e0068/assessment_meta.xml +76 -0
  15. data/spec/fixtures/test_qti_1.2_canvas_extended_2/gba044ae1fc7cfd3dc413e0df695e0068/gba044ae1fc7cfd3dc413e0df695e0068.xml +17 -0
  16. data/spec/fixtures/test_qti_1.2_canvas_extended_2/imsmanifest.xml +39 -0
  17. data/spec/fixtures/with_banks/g9a20cf3af178b54e4792cbe992f65790/assessment_meta.xml +69 -0
  18. data/spec/fixtures/with_banks/g9a20cf3af178b54e4792cbe992f65790/assessment_qti.xml +99 -0
  19. data/spec/fixtures/with_banks/imsmanifest.xml +54 -0
  20. data/spec/fixtures/with_banks/non_cc_assessments/g195e078fb6e3c4054e38e5c9226287ba.xml.qti +85 -0
  21. data/spec/fixtures/with_banks/non_cc_assessments/g9a20cf3af178b54e4792cbe992f65790.xml.qti +107 -0
  22. data/spec/fixtures/with_banks/non_cc_assessments/gab22de457404cb5cf022078f1e4da75e.xml.qti +59 -0
  23. data/spec/fixtures/with_banks/non_cc_assessments/gf3edf8167be16b3a65a00ca923132b07.xml.qti +145 -0
  24. data/spec/lib/qti/models/assessment_meta_spec.rb +39 -1
  25. data/spec/lib/qti/models/resource_spec.rb +14 -0
  26. data/spec/lib/qti/v1/models/interactions/base_fill_blank_interaction_spec.rb +146 -0
  27. data/spec/lib/qti/v1/models/interactions/canvas_multiple_dropdown_spec.rb +0 -27
  28. data/spec/lib/qti/v1/models/object_bank_spec.rb +39 -0
  29. 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.2.0
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: 2020-05-13 00:00:00.000000000 Z
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.2_canvas_extended/gba044ae1fc7cfd3dc413e0df695e0068/assessment_meta.xml
514
- - spec/fixtures/test_qti_1.2_canvas_extended/gba044ae1fc7cfd3dc413e0df695e0068/gba044ae1fc7cfd3dc413e0df695e0068.xml
515
- - spec/fixtures/test_qti_1.2_canvas_extended/imsmanifest.xml
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.4
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.2_canvas_extended/gba044ae1fc7cfd3dc413e0df695e0068/assessment_meta.xml
853
- - spec/fixtures/test_qti_1.2_canvas_extended/gba044ae1fc7cfd3dc413e0df695e0068/gba044ae1fc7cfd3dc413e0df695e0068.xml
854
- - spec/fixtures/test_qti_1.2_canvas_extended/imsmanifest.xml
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