Guest User

Untitled

a guest
Jun 20th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.92 KB | None | 0 0
  1. package Test::MyApp::mysqld;
  2. use strict;
  3. use warnings;
  4. use Test::mysqld;
  5. use JSON;
  6. use DBI;
  7.  
  8. our $SKIP_DROP_DB_MAP = {
  9. information_schema => 1,
  10. mysql => 1,
  11. test => 1,
  12. };
  13.  
  14. sub setup {
  15. my ($class, %config) = @_;
  16.  
  17. my $mysqld;
  18. if (my $json = $ENV{TEST_MYSQLD}) {
  19. my $obj = decode_json $json;
  20. $mysqld = bless $obj, 'Test::mysqld';
  21. }
  22. else {
  23. $mysqld = Test::mysqld->new(my_cnf => {
  24. 'skip-networking' => '',
  25. %config,
  26. }) or die $Test::mysqld::errstr;
  27. }
  28.  
  29. return $mysqld;
  30. }
  31.  
  32. sub cleanup {
  33. my ($class, $mysqld) = @_;
  34. my $dbh = DBI->connect($mysqld->dsn, '', '', {
  35. AutoCommit => 1,
  36. RaiseError => 1,
  37. });
  38.  
  39. my $rs = $dbh->selectall_hashref('SHOW DATABASES', 'Database');
  40. for my $dbname (keys %$rs) {
  41. next if $SKIP_DROP_DB_MAP->{$dbname};
  42. $dbh->do("DROP DATABASE $dbname");
  43. }
  44. }
  45.  
  46. 1;
Add Comment
Please, Sign In to add comment