From ea5beeacb185309572836cc60989f95ea4705f9d Mon Sep 17 00:00:00 2001 From: Dylan William Hardison Date: Fri, 10 Aug 2018 15:41:53 -0400 Subject: Bug 1482475 - Add extensive testing framework --- Bugzilla/Test/MockDB.pm | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 Bugzilla/Test/MockDB.pm (limited to 'Bugzilla/Test/MockDB.pm') diff --git a/Bugzilla/Test/MockDB.pm b/Bugzilla/Test/MockDB.pm new file mode 100644 index 000000000..d158a73de --- /dev/null +++ b/Bugzilla/Test/MockDB.pm @@ -0,0 +1,49 @@ +# This Source Code Form is subject to the terms of the Mozilla Public +# License, v. 2.0. If a copy of the MPL was not distributed with this +# file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# This Source Code Form is "Incompatible With Secondary Licenses", as +# defined by the Mozilla Public License, v. 2.0. +package Bugzilla::Test::MockDB; +use 5.10.1; +use strict; +use warnings; +use Try::Tiny; +use Capture::Tiny qw(capture_merged); + +use Bugzilla::Test::MockLocalconfig ( + db_driver => 'sqlite', + db_name => ':memory:', +); +use Bugzilla; +BEGIN { Bugzilla->extensions }; +use Bugzilla::Test::MockParams; + +sub import { + require Bugzilla::Install; + require Bugzilla::Install::DB; + require Bugzilla::Field;; + + state $first_time = 0; + + return undef if $first_time++; + + return capture_merged { + Bugzilla->dbh->bz_setup_database(); + + # Populate the tables that hold the values for the