MDL-61410 question: fix unit tests failures
authorSimey Lameze <simey@moodle.com>
Tue, 6 Mar 2018 06:23:34 +0000 (14:23 +0800)
committerSimey Lameze <simey@moodle.com>
Mon, 19 Mar 2018 03:45:55 +0000 (11:45 +0800)
question/format/xml/format.php
question/format/xml/tests/xmlformat_test.php
question/type/ddwtos/tests/questiontype_test.php
question/type/gapselect/tests/questiontype_test.php

index 0058862..dabec48 100644 (file)
@@ -1476,12 +1476,11 @@ class qformat_xml extends qformat_default {
 
         // Write the question tags.
         if (core_tag_tag::is_enabled('core_question', 'question')) {
-            $tagobjects = core_tag_tag::get_items_tags('core_question', 'question', $question->id);
+            $tagobjects = core_tag_tag::get_item_tags('core_question', 'question', $question->id);
 
             if (!is_null($tagobjects)) {
-                $tagobjects = $tagobjects[$question->id];
-                $categorycontext = context::instance_by_id($this->category->contextid);
-                $sortedtagobjects = question_sort_tags($tagobjects, $categorycontext);
+                $context = context::instance_by_id($contextid);
+                $sortedtagobjects = question_sort_tags($tagobjects, $context, [$this->course]);
 
                 if (!empty($sortedtagobjects->coursetags)) {
                     // Set them on the form to be rendered as existing tags.
index 8ed0271..5b923a0 100644 (file)
@@ -147,6 +147,7 @@ class qformat_xml_test extends question_testcase {
 
     public function test_write_hint_basic() {
         $q = $this->make_test_question();
+        $q->contextid = \context_system::instance()->id;
         $q->name = 'Short answer question';
         $q->questiontext = 'Name an amphibian: __________';
         $q->generalfeedback = 'Generalfeedback: frog or toad would have been OK.';
@@ -176,6 +177,7 @@ class qformat_xml_test extends question_testcase {
 
     public function test_write_hint_with_parts() {
         $q = $this->make_test_question();
+        $q->contextid = \context_system::instance()->id;
         $q->name = 'Matching question';
         $q->questiontext = 'Classify the animals.';
         $q->generalfeedback = 'Frogs and toads are amphibians, the others are mammals.';
@@ -329,7 +331,7 @@ END;
     public function test_export_description() {
         $qdata = new stdClass();
         $qdata->id = 123;
-        $qdata->contextid = 0;
+        $qdata->contextid = \context_system::instance()->id;
         $qdata->qtype = 'description';
         $qdata->name = 'A description';
         $qdata->questiontext = 'The question text.';
@@ -474,7 +476,7 @@ END;
     public function test_export_essay() {
         $qdata = new stdClass();
         $qdata->id = 123;
-        $qdata->contextid = 0;
+        $qdata->contextid = \context_system::instance()->id;
         $qdata->qtype = 'essay';
         $qdata->name = 'An essay';
         $qdata->questiontext = 'Write something.';
@@ -636,7 +638,7 @@ END;
     public function test_export_match() {
         $qdata = new stdClass();
         $qdata->id = 123;
-        $qdata->contextid = 0;
+        $qdata->contextid = \context_system::instance()->id;
         $qdata->qtype = 'match';
         $qdata->name = 'Matching question';
         $qdata->questiontext = 'Match the upper and lower case letters.';
@@ -867,7 +869,7 @@ END;
     public function test_export_multichoice() {
         $qdata = new stdClass();
         $qdata->id = 123;
-        $qdata->contextid = 0;
+        $qdata->contextid = \context_system::instance()->id;
         $qdata->qtype = 'multichoice';
         $qdata->name = 'Multiple choice question';
         $qdata->questiontext = 'Which are the even numbers?';
@@ -1040,7 +1042,7 @@ END;
 
         $qdata = new stdClass();
         $qdata->id = 123;
-        $qdata->contextid = 0;
+        $qdata->contextid = \context_system::instance()->id;
         $qdata->qtype = 'numerical';
         $qdata->name = 'Numerical question';
         $qdata->questiontext = 'What is the answer?';
@@ -1170,7 +1172,7 @@ END;
     public function test_export_shortanswer() {
         $qdata = new stdClass();
         $qdata->id = 123;
-        $qdata->contextid = 0;
+        $qdata->contextid = \context_system::instance()->id;
         $qdata->qtype = 'shortanswer';
         $qdata->name = 'Short answer question';
         $qdata->questiontext = 'Fill in the gap in this sequence: Alpha, ________, Gamma.';
@@ -1291,7 +1293,7 @@ END;
     public function test_export_truefalse() {
         $qdata = new stdClass();
         $qdata->id = 12;
-        $qdata->contextid = 0;
+        $qdata->contextid = \context_system::instance()->id;
         $qdata->qtype = 'truefalse';
         $qdata->name = 'True false question';
         $qdata->questiontext = 'The answer is true.';
@@ -1455,7 +1457,7 @@ END;
 
     public function test_export_multianswer() {
         $qdata = test_question_maker::get_question_data('multianswer', 'twosubq');
-
+        $qdata->contextid = \context_system::instance()->id;
         $exporter = new qformat_xml();
         $xml = $exporter->writequestion($qdata);
 
@@ -1486,7 +1488,7 @@ END;
 
     public function test_export_multianswer_withdollars() {
         $qdata = test_question_maker::get_question_data('multianswer', 'dollarsigns');
-
+        $qdata->contextid = \context_system::instance()->id;
         $exporter = new qformat_xml();
         $xml = $exporter->writequestion($qdata);
 
index 2e8d8ad..747c87f 100644 (file)
@@ -439,7 +439,7 @@ class qtype_ddwtos_test extends question_testcase {
     public function test_xml_export() {
         $qdata = new stdClass();
         $qdata->id = 123;
-        $qdata->contextid = 0;
+        $qdata->contextid = \context_system::instance()->id;
         $qdata->qtype = 'ddwtos';
         $qdata->name = 'A drag-and-drop question';
         $qdata->questiontext = 'Put these in order: [[1]], [[2]], [[3]].';
index 12a5e0a..0a85673 100644 (file)
@@ -242,7 +242,7 @@ class qtype_gapselect_test extends question_testcase {
     public function test_xml_export() {
         $qdata = new stdClass();
         $qdata->id = 123;
-        $qdata->contextid = 0;
+        $qdata->contextid = \context_system::instance()->id;
         $qdata->qtype = 'gapselect';
         $qdata->name = 'A select missing words question';
         $qdata->questiontext = 'Put these in order: [[1]], [[2]], [[3]].';