Refactor tests (#10625)

* Refactor tests
Boot Laravel for all tests.
Config use private static property for storage instead of global

* Backup/restore modules

* disable snmpsim log

* Fixing DBTestCase

* Fix macros loading to the wrong place

* trap and other tests should check if db is available

* don't include snmp.inc.php if mock.snmp.inc.php is already included...

* fix migration

* if we don't reset the db, run migrations at least.

* set vars for migrate too

* Fix style

* ignore issues with undefined indexes in legacy code
This commit is contained in:
Tony Murray
2019-10-13 13:40:38 +00:00
committed by GitHub
parent 4cf584b425
commit 63442e8b4a
48 changed files with 298 additions and 324 deletions

View File

@@ -25,12 +25,34 @@
namespace LibreNMS\Tests;
use LibreNMS\Config;
use LibreNMS\Exceptions\FileNotFoundException;
use LibreNMS\Exceptions\InvalidModuleException;
use LibreNMS\Util\ModuleTestHelper;
class OSModulesTest extends DBTestCase
{
private $discoveryModules;
private $pollerModules;
public function setUp(): void
{
parent::setUp();
// backup modules
$this->discoveryModules = Config::get('discovery_modules');
$this->pollerModules = Config::get('poller_modules');
}
public function tearDown(): void
{
// restore modules
Config::set('discovery_modules', $this->discoveryModules);
Config::set('poller_modules', $this->pollerModules);
parent::tearDown();
}
/**
* Test all modules for a particular OS
*
@@ -59,16 +81,15 @@ class OSModulesTest extends DBTestCase
public function testOS($os, $variant, $modules)
{
$this->requireSnmpsim(); // require snmpsim for tests
global $snmpsim;
load_all_os(); // wiped out by application refresh
try {
set_debug(false); // avoid all undefined index errors in the legacy code
$helper = new ModuleTestHelper($modules, $os, $variant);
$helper->setQuiet();
$filename = $helper->getJsonFilepath(true);
$expected_data = $helper->getTestData();
$results = $helper->generateTestData($snmpsim, true);
$results = $helper->generateTestData($this->getSnmpsim(), true);
} catch (FileNotFoundException $e) {
$this->fail($e->getMessage());
return;