Search moodle.org's
Developer Documentation

See Release Notes

  • Bug fixes for general core bugs in 3.11.x will end 14 Nov 2022 (12 months plus 6 months extension).
  • Bug fixes for security issues in 3.11.x will end 13 Nov 2023 (18 months plus 12 months extension).
  • PHP version: minimum PHP 7.3.0 Note: minimum PHP version has increased since Moodle 3.10. PHP 7.4.x is supported too.
<?php
// This file is part of Moodle - https://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.

< /** < * Provides the {@link mlbackend_python_processor_testcase} class. < * < * @package mlbackend_python < * @category test < * @copyright 2019 David Mudrák <david@moodle.com> < * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later < */ < < defined('MOODLE_INTERNAL') || die();
> namespace mlbackend_python;
/** * Unit tests for the {@link \mlbackend_python\processor} class. *
> * @package mlbackend_python * @copyright 2019 David Mudrák <david@moodle.com> > * @category test
* @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */
< class mlbackend_python_processor_testcase extends advanced_testcase {
> class processor_test extends \advanced_testcase {
/** * Test implementation of the {@link \mlbackend_python\processor::check_pip_package_version()} method. * * @dataProvider check_pip_package_versions * @param string $actual A sample of the actual package version * @param string $required A sample of the required package version * @param int $result Expected value returned by the tested method */ public function test_check_pip_package_version($actual, $required, $result) { $this->assertSame($result, \mlbackend_python\processor::check_pip_package_version($actual, $required)); } /** * Check that the {@link \mlbackend_python\processor::check_pip_package_version()} can be called with single argument. */ public function test_check_pip_package_version_default() { $this->assertSame(-1, \mlbackend_python\processor::check_pip_package_version('0.0.1')); $this->assertSame(0, \mlbackend_python\processor::check_pip_package_version( \mlbackend_python\processor::REQUIRED_PIP_PACKAGE_VERSION)); } /** * Provides data samples for the {@link self::test_check_pip_package_version()}. * * @return array */ public function check_pip_package_versions() { return [ // Exact match. [ '0.0.5', '0.0.5', 0, ], [ '1.0.0', '1.0.0', 0, ], // Actual version higher than required, yet still API compatible. [ '1.0.3', '1.0.1', 0, ], [ '2.1.3', '2.0.0', 0, ], [ '1.1.5', '1.1', 0, ], [ '2.0.3', '2', 0, ], // Actual version not high enough to meet the requirements. [ '0.0.5', '1.0.0', -1, ], [ '0.37.0', '1.0.0', -1, ], [ '0.0.5', '0.37.0', -1, ], [ '2.0.0', '2.0.2', -1, ], [ '2.7.0', '3.0', -1, ], [ '2.8.9-beta1', '3.0', -1, ], [ '1.1.0-rc1', '1.1.0', -1, ], // Actual version too high and no longer API compatible. [ '2.0.0', '1.0.0', 1, ], [ '3.1.5', '2.0', 1, ], [ '3.0.0', '1.0', 1, ], [ '2.0.0', '0.0.5', 1, ], [ '3.0.2', '0.37.0', 1, ], // Zero major version requirement is fulfilled with 1.x API (0.x are not considered stable APIs). [ '1.0.0', '0.0.5', 0, ], [ '1.8.6', '0.37.0', 0, ], // Empty version is never good enough. [ '', '1.0.0', -1, ], [ '0.0.0', '0.37.0', -1, ], ]; } }