Commit 461aff93 authored by Brandon Walts's avatar Brandon Walts
Browse files

Merge branch 'version/2.0' into version/2.1

parents 1570998b e1f375bf
...@@ -325,20 +325,21 @@ sub url2dbconn_hash { ...@@ -325,20 +325,21 @@ sub url2dbconn_hash {
sub go_figure_dbc { sub go_figure_dbc {
my ($foo, $schema_type) = @_; my ($foo, $schema_type) = @_;
# if(UNIVERSAL::isa($foo, 'Bio::EnsEMBL::DBSQL::DBConnection')) { # already a DBConnection, return it: require Bio::EnsEMBL::Hive::DBSQL::DBConnection;
if ( ref($foo) =~ /DBConnection$/ ) { # already a DBConnection, return it:
return $foo;
# if(UNIVERSAL::isa($foo, 'Bio::EnsEMBL::DBSQL::DBConnection')) { # already a DBConnection, return it:
if ( ref($foo) =~ /DBConnection$/ ) { # already a DBConnection, hive-ify it and return
return bless $foo, 'Bio::EnsEMBL::Hive::DBSQL::DBConnection';
# } elsif(UNIVERSAL::can($foo, 'dbc') and UNIVERSAL::isa($foo->dbc, 'Bio::EnsEMBL::DBSQL::DBConnection')) { # } elsif(UNIVERSAL::can($foo, 'dbc') and UNIVERSAL::isa($foo->dbc, 'Bio::EnsEMBL::DBSQL::DBConnection')) {
} elsif(UNIVERSAL::can($foo, 'dbc') and ref($foo->dbc) =~ /DBConnection$/) { } elsif(UNIVERSAL::can($foo, 'dbc') and ref($foo->dbc) =~ /DBConnection$/) {
return $foo->dbc; return bless $foo->dbc, 'Bio::EnsEMBL::Hive::DBSQL::DBConnection';
# } elsif(UNIVERSAL::can($foo, 'db') and UNIVERSAL::can($foo->db, 'dbc') and UNIVERSAL::isa($foo->db->dbc, 'Bio::EnsEMBL::DBSQL::DBConnection')) { # another data adaptor or Runnable: # } elsif(UNIVERSAL::can($foo, 'db') and UNIVERSAL::can($foo->db, 'dbc') and UNIVERSAL::isa($foo->db->dbc, 'Bio::EnsEMBL::DBSQL::DBConnection')) { # another data adaptor or Runnable:
} elsif(UNIVERSAL::can($foo, 'db') and UNIVERSAL::can($foo->db, 'dbc') and ref($foo->db->dbc) =~ /DBConnection$/) { # another data adaptor or Runnable: } elsif(UNIVERSAL::can($foo, 'db') and UNIVERSAL::can($foo->db, 'dbc') and ref($foo->db->dbc) =~ /DBConnection$/) { # another data adaptor or Runnable:
return $foo->db->dbc; return bless $foo->db->dbc, 'Bio::EnsEMBL::Hive::DBSQL::DBConnection';
} elsif(my $db_conn = (ref($foo) eq 'HASH') ? $foo : url2dbconn_hash( $foo ) ) { # either a hash or a URL that translates into a hash } elsif(my $db_conn = (ref($foo) eq 'HASH') ? $foo : url2dbconn_hash( $foo ) ) { # either a hash or a URL that translates into a hash
......
#!/usr/bin/env perl
# Copyright [1999-2016] Wellcome Trust Sanger Institute and the EMBL-European Bioinformatics Institute
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
use strict;
use warnings;
use Test::More;
use Data::Dumper;
use Bio::EnsEMBL::Hive::Utils qw(go_figure_dbc);
use Bio::EnsEMBL::Hive::DBSQL::DBAdaptor;
my $pipeline_url = 'mysql://user@' . 'localhost:3306/ehive_test_pipeline_db';
# conversion of generic DBConnection to Bio::EnsEMBL::Hive::DBSQL::DBConnection
my $fake_dbc = {};
bless $fake_dbc, 'Fake::DBConnection';
my $real_dbc = go_figure_dbc($fake_dbc);
isa_ok($real_dbc, 'Bio::EnsEMBL::Hive::DBSQL::DBConnection');
# passing a url returns a valid hive dbc
my $url_dbc = go_figure_dbc($pipeline_url);
isa_ok($url_dbc, 'Bio::EnsEMBL::Hive::DBSQL::DBConnection');
is($url_dbc->url(), $pipeline_url, "dbc created from url returns the same url");
# passing a hash returns a valid hive dbc
my $hash_dbc = go_figure_dbc({-driver => 'mysql',
-dbname => 'ehive_test_pipeline_db',
-host => 'localhost',
-user => 'user'});
isa_ok($hash_dbc, 'Bio::EnsEMBL::Hive::DBSQL::DBConnection');
is($hash_dbc->url(), $pipeline_url, "dbc created from hash generates appropriate url");
# passing something that has a dbc method returns a dbc
my $dba = Bio::EnsEMBL::Hive::DBSQL::DBAdaptor->new(-url => $pipeline_url,
-no_sql_schema_version_check => 1);
my $dba2dbc = go_figure_dbc($dba);
isa_ok($dba2dbc, 'Bio::EnsEMBL::Hive::DBSQL::DBConnection');
done_testing();
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment