solvebio 1.6.1 → 1.7.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.bumpversion.cfg +6 -0
- data/.gitignore +5 -4
- data/.travis.yml +1 -1
- data/Gemfile +3 -0
- data/README.md +34 -34
- data/Rakefile +1 -18
- data/bin/solvebio.rb +14 -16
- data/installer +64 -0
- data/lib/solvebio.rb +50 -11
- data/lib/solvebio/acccount.rb +4 -0
- data/lib/solvebio/annotation.rb +11 -0
- data/lib/solvebio/api_operations.rb +147 -0
- data/lib/solvebio/api_resource.rb +32 -0
- data/lib/solvebio/cli.rb +75 -0
- data/lib/solvebio/cli/auth.rb +106 -0
- data/lib/solvebio/cli/credentials.rb +54 -0
- data/lib/{cli → solvebio/cli}/irb.rb +0 -23
- data/lib/solvebio/cli/irbrc.rb +48 -0
- data/lib/solvebio/cli/tutorial.rb +12 -0
- data/lib/solvebio/client.rb +149 -0
- data/lib/solvebio/dataset.rb +60 -0
- data/lib/solvebio/dataset_field.rb +12 -0
- data/lib/solvebio/depository.rb +38 -0
- data/lib/solvebio/depository_version.rb +40 -0
- data/lib/solvebio/errors.rb +64 -0
- data/lib/solvebio/filter.rb +315 -0
- data/lib/solvebio/list_object.rb +73 -0
- data/lib/solvebio/locale.rb +43 -0
- data/lib/solvebio/query.rb +341 -0
- data/lib/solvebio/sample.rb +54 -0
- data/lib/solvebio/singleton_api_resource.rb +25 -0
- data/lib/solvebio/solve_object.rb +164 -0
- data/lib/solvebio/tabulate.rb +589 -0
- data/lib/solvebio/user.rb +4 -0
- data/lib/solvebio/util.rb +59 -0
- data/lib/solvebio/version.rb +3 -0
- data/solvebio.gemspec +10 -18
- data/test/helper.rb +6 -2
- data/test/solvebio/data/.gitignore +1 -0
- data/test/solvebio/data/.netrc +6 -0
- data/test/{data → solvebio/data}/netrc-save +0 -0
- data/test/solvebio/data/sample.vcf.gz +0 -0
- data/test/solvebio/data/test_creds +3 -0
- data/test/solvebio/test_annotation.rb +45 -0
- data/test/solvebio/test_client.rb +29 -0
- data/test/solvebio/test_conversion.rb +14 -0
- data/test/solvebio/test_credentials.rb +67 -0
- data/test/solvebio/test_dataset.rb +52 -0
- data/test/solvebio/test_depository.rb +24 -0
- data/test/solvebio/test_depositoryversion.rb +22 -0
- data/test/solvebio/test_error.rb +31 -0
- data/test/solvebio/test_filter.rb +86 -0
- data/test/solvebio/test_query.rb +282 -0
- data/test/solvebio/test_query_batch.rb +38 -0
- data/test/solvebio/test_query_init.rb +30 -0
- data/test/solvebio/test_query_tabulate.rb +73 -0
- data/test/solvebio/test_ratelimit.rb +31 -0
- data/test/solvebio/test_resource.rb +29 -0
- data/test/solvebio/test_sample_access.rb +60 -0
- data/test/solvebio/test_sample_download.rb +20 -0
- data/test/solvebio/test_tabulate.rb +129 -0
- data/test/solvebio/test_util.rb +39 -0
- metadata +100 -85
- data/Makefile +0 -17
- data/demo/README.md +0 -14
- data/demo/cheatsheet.rb +0 -31
- data/demo/dataset/facets.rb +0 -13
- data/demo/dataset/field.rb +0 -13
- data/demo/depository/README.md +0 -24
- data/demo/depository/all.rb +0 -13
- data/demo/depository/retrieve.rb +0 -13
- data/demo/depository/versions-all.rb +0 -13
- data/demo/query/query-filter.rb +0 -30
- data/demo/query/query.rb +0 -13
- data/demo/query/range-filter.rb +0 -18
- data/demo/test-api.rb +0 -98
- data/lib/cli/auth.rb +0 -122
- data/lib/cli/help.rb +0 -13
- data/lib/cli/irbrc.rb +0 -54
- data/lib/cli/options.rb +0 -75
- data/lib/client.rb +0 -154
- data/lib/credentials.rb +0 -67
- data/lib/errors.rb +0 -81
- data/lib/filter.rb +0 -312
- data/lib/locale.rb +0 -47
- data/lib/main.rb +0 -46
- data/lib/query.rb +0 -414
- data/lib/resource/annotation.rb +0 -23
- data/lib/resource/apiresource.rb +0 -241
- data/lib/resource/dataset.rb +0 -91
- data/lib/resource/datasetfield.rb +0 -37
- data/lib/resource/depository.rb +0 -50
- data/lib/resource/depositoryversion.rb +0 -69
- data/lib/resource/main.rb +0 -123
- data/lib/resource/sample.rb +0 -75
- data/lib/resource/solveobject.rb +0 -122
- data/lib/resource/user.rb +0 -5
- data/lib/tabulate.rb +0 -706
- data/lib/util.rb +0 -29
- data/test/Makefile +0 -9
- data/test/data/sample.vcf.gz +0 -0
- data/test/test-annotation.rb +0 -46
- data/test/test-auth.rb +0 -58
- data/test/test-client.rb +0 -27
- data/test/test-conversion.rb +0 -13
- data/test/test-dataset.rb +0 -42
- data/test/test-depository.rb +0 -35
- data/test/test-error.rb +0 -36
- data/test/test-filter.rb +0 -70
- data/test/test-netrc.rb +0 -52
- data/test/test-query-batch.rb +0 -40
- data/test/test-query-init.rb +0 -29
- data/test/test-query-paging.rb +0 -102
- data/test/test-query.rb +0 -71
- data/test/test-resource.rb +0 -40
- data/test/test-sample-access.rb +0 -59
- data/test/test-sample-download.rb +0 -20
- data/test/test-tabulate.rb +0 -131
- data/test/test-util.rb +0 -42
data/lib/util.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
module SolveBio
|
2
|
-
|
3
|
-
module_function
|
4
|
-
def pluralize(name)
|
5
|
-
if name.end_with?('y')
|
6
|
-
name = name[0..-2] + 'ie'
|
7
|
-
end
|
8
|
-
return name + "s"
|
9
|
-
end
|
10
|
-
|
11
|
-
# Add underscore before internal uppercase letters. Also, lowercase
|
12
|
-
# all letters.
|
13
|
-
def camelcase_to_underscore(name)
|
14
|
-
# Using [[:upper:]] and [[:lower]] should help with Unicode.
|
15
|
-
s1 = name.gsub(/(.)([[:upper:]])([[:lower:]]+)/){"#{$1}_#{$2}#{$3}"}
|
16
|
-
return (s1.gsub(/([a-z0-9])([[:upper:]])/){"#{$1}_#{$2}"}).downcase
|
17
|
-
end
|
18
|
-
end
|
19
|
-
|
20
|
-
# Demo code
|
21
|
-
if __FILE__ == $0
|
22
|
-
include SolveBio
|
23
|
-
%w(abc abcDef abc01Def aBcDef a1B2C3 ?Foo Dataset).each do |word|
|
24
|
-
puts word + " -> " + camelcase_to_underscore(word)
|
25
|
-
end
|
26
|
-
['depository', 'dataset'].each do |word|
|
27
|
-
puts word + " -> " + pluralize(word)
|
28
|
-
end
|
29
|
-
end
|
data/test/Makefile
DELETED
data/test/data/sample.vcf.gz
DELETED
Binary file
|
data/test/test-annotation.rb
DELETED
@@ -1,46 +0,0 @@
|
|
1
|
-
require_relative './helper'
|
2
|
-
|
3
|
-
class TestAnnotation < Test::Unit::TestCase
|
4
|
-
|
5
|
-
def check_response(response, expect, msg)
|
6
|
-
expect.each do |key, val|
|
7
|
-
assert_equal(val, response[key], msg)
|
8
|
-
end
|
9
|
-
end
|
10
|
-
|
11
|
-
def test_annotation
|
12
|
-
if SolveBio::API_HOST == 'https://api.solvebio.com'
|
13
|
-
skip "Annotation testing only on local/dev environments"
|
14
|
-
end
|
15
|
-
|
16
|
-
vcf_file = File.join(File.dirname(__FILE__), "data/sample.vcf.gz")
|
17
|
-
my_sample = SolveBio::Sample
|
18
|
-
.create('GRCh37', :vcf_file => vcf_file)
|
19
|
-
assert(my_sample)
|
20
|
-
|
21
|
-
sample_id = my_sample['id']
|
22
|
-
expect = {
|
23
|
-
'class_name' => 'Annotation',
|
24
|
-
'error_message' => '',
|
25
|
-
'sample_id' => sample_id
|
26
|
-
}
|
27
|
-
|
28
|
-
response = SolveBio::Annotation.create(:sample_id => sample_id)
|
29
|
-
check_response(response, expect,
|
30
|
-
"'Annotation.create(:sample_id=>{#sample_id}")
|
31
|
-
|
32
|
-
['status', 'user_id', 'created_at', 'updated_at'].each do |field|
|
33
|
-
assert(response.member?(field) ,
|
34
|
-
"response has field #{field}")
|
35
|
-
end
|
36
|
-
|
37
|
-
all = SolveBio::Annotation.all()
|
38
|
-
assert(all.total > 1,
|
39
|
-
"Annotation.all() returns more than one value")
|
40
|
-
|
41
|
-
response = my_sample.annotate
|
42
|
-
# FIXME: test annotate() more.
|
43
|
-
|
44
|
-
my_sample.delete
|
45
|
-
end
|
46
|
-
end
|
data/test/test-auth.rb
DELETED
@@ -1,58 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
$VERBOSE = true
|
3
|
-
require 'test/unit'
|
4
|
-
require 'rbconfig'
|
5
|
-
require_relative '../lib/credentials'
|
6
|
-
|
7
|
-
class TestAuth < Test::Unit::TestCase
|
8
|
-
|
9
|
-
include SolveBio::Credentials
|
10
|
-
|
11
|
-
def run_it(cmd)
|
12
|
-
output = `#{cmd}`
|
13
|
-
assert_equal 0, $?.to_i, "Should be able to run #{cmd}"
|
14
|
-
output.chomp
|
15
|
-
end
|
16
|
-
|
17
|
-
def setup
|
18
|
-
ruby=RbConfig.ruby
|
19
|
-
@auth_prog = File.join(File.dirname(__FILE__),
|
20
|
-
'..', 'lib', 'cli', 'auth.rb')
|
21
|
-
@logout_cmd = "#{ruby} #{@auth_prog} logout"
|
22
|
-
@@whoami_cmd = "#{ruby} #{@auth_prog} whoami"
|
23
|
-
|
24
|
-
# Save who I was so we can compare at the end
|
25
|
-
@i_was = run_it @@whoami_cmd
|
26
|
-
|
27
|
-
begin
|
28
|
-
@@creds = get_credentials
|
29
|
-
rescue CredentialsError
|
30
|
-
@@creds = nil
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def teardown
|
35
|
-
# Restore creds to what they were when we started
|
36
|
-
save_credentials(*@@creds) if @@creds
|
37
|
-
netrc_path = SolveBio::Credentials.netrc_path
|
38
|
-
n = Netrc.read(netrc_path)
|
39
|
-
if n[SolveBio::API_HOST]
|
40
|
-
i_am = run_it @@whoami_cmd
|
41
|
-
assert_equal(@i_was, i_am,
|
42
|
-
'get_credential and save_creditentials be idempotent')
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
# Integration test of logout
|
47
|
-
def test_logout
|
48
|
-
# Dunno if we are logged in or out - log out
|
49
|
-
output = run_it @logout_cmd
|
50
|
-
# We should be logged out. Try again, and check message.
|
51
|
-
output = run_it @logout_cmd
|
52
|
-
assert_equal 'You are not logged-in.', output
|
53
|
-
# We should be logged out. Try to get status
|
54
|
-
output = run_it @@whoami_cmd
|
55
|
-
assert_equal 'You are not logged-in.', output
|
56
|
-
end
|
57
|
-
|
58
|
-
end
|
data/test/test-client.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
$VERBOSE = true
|
3
|
-
require 'test/unit'
|
4
|
-
require 'fileutils'
|
5
|
-
require_relative '../lib/client'
|
6
|
-
|
7
|
-
class TestClient < Test::Unit::TestCase
|
8
|
-
|
9
|
-
def test_get
|
10
|
-
client = SolveBio::Client.new(nil, 'http://google.com')
|
11
|
-
assert client, 'Should be able to create a client'
|
12
|
-
|
13
|
-
# Can we get something from google?
|
14
|
-
output = `curl --silent http://www.google.com`
|
15
|
-
if $?.success? and output
|
16
|
-
assert(client.request('get', 'http://www.google.com',
|
17
|
-
{:raw => true, :redirect => true}),
|
18
|
-
'HTTP GET, google.com')
|
19
|
-
assert(client.request('get', 'https://www.google.com',
|
20
|
-
{:raw => true}),
|
21
|
-
'HTTPS GET google.com')
|
22
|
-
else
|
23
|
-
skip('Are you connected to the Internet? www.google.com is unavailable')
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
data/test/test-conversion.rb
DELETED
@@ -1,13 +0,0 @@
|
|
1
|
-
require 'test/unit'
|
2
|
-
require_relative '../lib/resource/apiresource'
|
3
|
-
|
4
|
-
class ConversionTest < Test::Unit::TestCase
|
5
|
-
def test_class_to_api_name
|
6
|
-
ar = SolveBio::APIResource
|
7
|
-
[%w(Annotation annotations),
|
8
|
-
%w(DataField data_fields),
|
9
|
-
%w(Depository depositories)].each do |class_name, expect|
|
10
|
-
assert_equal(expect, ar.class_to_api_name(class_name))
|
11
|
-
end
|
12
|
-
end
|
13
|
-
end
|
data/test/test-dataset.rb
DELETED
@@ -1,42 +0,0 @@
|
|
1
|
-
# Test Dataset, DatasetField, and Facets
|
2
|
-
require_relative './helper'
|
3
|
-
require_relative '../lib/resource/main'
|
4
|
-
|
5
|
-
class TestDataset < Test::Unit::TestCase
|
6
|
-
def setup
|
7
|
-
@dataset = SolveBio::Dataset.retrieve(TEST_DATASET_NAME)
|
8
|
-
end
|
9
|
-
|
10
|
-
def test_dataset
|
11
|
-
assert(@dataset.member?('id'),
|
12
|
-
'Should be able to get id in dataset')
|
13
|
-
|
14
|
-
%w(class_name created_at data_url depository depository_id
|
15
|
-
depository_version depository_version_id description
|
16
|
-
fields_url full_name name title updated_at url).each do |field|
|
17
|
-
assert(@dataset.member?(field),
|
18
|
-
"Should find field #{field} in dataset #{@dataset.id}")
|
19
|
-
end
|
20
|
-
|
21
|
-
fields = @dataset.fields()
|
22
|
-
dataset_field = fields[:data][0]
|
23
|
-
assert(dataset_field.member?('id'),
|
24
|
-
'Should be able to get id in list of dataset fields')
|
25
|
-
|
26
|
-
dataset_field2 = SolveBio::DatasetField.retrieve(dataset_field.id)
|
27
|
-
assert_equal(dataset_field, dataset_field2,
|
28
|
-
"Retrieving SolveBio::DatasetField id " +
|
29
|
-
"#{dataset_field[:id]} found by all()")
|
30
|
-
|
31
|
-
%w(class_name created_at dataset dataset_id description facets_url
|
32
|
-
name updated_at url).each do |field|
|
33
|
-
assert(dataset_field.member?(field),
|
34
|
-
"Should find field #{field} in fields #{dataset_field.id}")
|
35
|
-
end
|
36
|
-
facets = dataset_field.facets()
|
37
|
-
|
38
|
-
# We can get small or large numbers like 0 or 4902851621.0
|
39
|
-
assert(facets['total'] >= 0,
|
40
|
-
'facets should have a numeric total field >= 0')
|
41
|
-
end
|
42
|
-
end
|
data/test/test-depository.rb
DELETED
@@ -1,35 +0,0 @@
|
|
1
|
-
# Test Depository, DepositoryVersions
|
2
|
-
|
3
|
-
require_relative './helper'
|
4
|
-
class TestDepository < Test::Unit::TestCase
|
5
|
-
|
6
|
-
def test_depositories
|
7
|
-
depos = SolveBio::Depository.all()
|
8
|
-
|
9
|
-
depo = depos[:data][0]
|
10
|
-
assert(depo.member?('id'),
|
11
|
-
'Should be able to get id in depository')
|
12
|
-
|
13
|
-
depo2 = SolveBio::Depository.retrieve(depo.id)
|
14
|
-
assert_equal(depo, depo2,
|
15
|
-
"Retrieving dataset id #{depo.id} found by all()")
|
16
|
-
|
17
|
-
%w(class_name created_at description external_resources
|
18
|
-
full_name id is_private is_restricted latest_version
|
19
|
-
latest_version_id name title updated_at url versions_count
|
20
|
-
versions_url).each do |field|
|
21
|
-
assert(depo.member?(field),
|
22
|
-
"Should find field #{field} in depo #{depo.id}")
|
23
|
-
end
|
24
|
-
|
25
|
-
depo_version_id = depo.versions()[:data][0].id
|
26
|
-
depo_version = SolveBio::DepositoryVersion.retrieve(depo_version_id)
|
27
|
-
|
28
|
-
%w(class_name created_at datasets_url depository depository_id
|
29
|
-
description full_name id latest name released released_at
|
30
|
-
title updated_at url).each do |field|
|
31
|
-
assert(depo_version.member?(field),
|
32
|
-
"Should find field #{field} in depo version")
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
data/test/test-error.rb
DELETED
@@ -1,36 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
$VERBOSE = true
|
3
|
-
require 'test/unit'
|
4
|
-
require 'net/http'
|
5
|
-
require_relative '../lib/errors'
|
6
|
-
|
7
|
-
# require 'trepanning'
|
8
|
-
|
9
|
-
$errors = []
|
10
|
-
|
11
|
-
class FakeLogger
|
12
|
-
def debug(mess)
|
13
|
-
$errors << mess
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
class TestError < Test::Unit::TestCase
|
18
|
-
|
19
|
-
def test_error
|
20
|
-
msg = "hi"
|
21
|
-
assert_equal msg, SolveBio::Error.new(nil, msg).to_s, "Error.to_s fn"
|
22
|
-
response = Net::HTTPUnauthorized.new('HTTP 1.1', '404', 'No creds')
|
23
|
-
old_logger = SolveBio.instance_variable_get('@logger')
|
24
|
-
logger = FakeLogger.new
|
25
|
-
SolveBio.instance_variable_set('@logger', logger)
|
26
|
-
old_verbose = $VERBOSE
|
27
|
-
$VERBOSE=false
|
28
|
-
SolveBio::Error.new(response)
|
29
|
-
$VERBOSE=old_verbose
|
30
|
-
assert_equal ["API Response (404): No content."], $errors
|
31
|
-
ensure
|
32
|
-
$VERBOSE = old_verbose if old_verbose
|
33
|
-
SolveBio.instance_variable_set('@logger', old_logger) if old_logger
|
34
|
-
|
35
|
-
end
|
36
|
-
end
|
data/test/test-filter.rb
DELETED
@@ -1,70 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
$VERBOSE = true
|
3
|
-
require 'test/unit'
|
4
|
-
require_relative '../lib/filter'
|
5
|
-
|
6
|
-
class TestFilter < Test::Unit::TestCase
|
7
|
-
|
8
|
-
def test_filter_errors
|
9
|
-
assert_raises TypeError do
|
10
|
-
SolveBio::Filter.new(:style__gtt => 5)
|
11
|
-
end
|
12
|
-
assert_raises TypeError do
|
13
|
-
SolveBio::Filter.new(:style__between => 'a')
|
14
|
-
end
|
15
|
-
assert_raises TypeError do
|
16
|
-
SolveBio::Filter.new(:style__between => [5,10,15])
|
17
|
-
end
|
18
|
-
assert_raises IndexError do
|
19
|
-
SolveBio::Filter.new(:style__range => [10,5])
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
23
|
-
def test_filter
|
24
|
-
f = SolveBio::Filter.new
|
25
|
-
assert_equal('<SolveBio::Filter []>', f.inspect, 'empty filter')
|
26
|
-
assert_equal('<SolveBio::Filter []>',
|
27
|
-
(~f).inspect, '"not" of empty filter')
|
28
|
-
f2 = SolveBio::Filter.new({:style => 'Mexican', :price => 'Free'})
|
29
|
-
assert_equal('<SolveBio::Filter [{:and=>[[:price, "Free"], [:style, "Mexican"]]}]>',
|
30
|
-
f2.inspect, 'Hash to tuple sorting'
|
31
|
-
)
|
32
|
-
assert_equal('<SolveBio::Filter [{:not=>{:and=>[[:price, "Free"], [:style, "Mexican"]]}}]>',
|
33
|
-
(~f2).inspect, '~ of a non-nil filter')
|
34
|
-
assert_equal('<SolveBio::Filter [{:and=>[[:price, "Free"], [:style, "Mexican"]]}]>',
|
35
|
-
(~~f2).inspect, '~~ has no effect')
|
36
|
-
|
37
|
-
filters3 =
|
38
|
-
SolveBio::Filter.new(:omim_id => 144650) |
|
39
|
-
SolveBio::Filter.new(:omim_id => 144600) |
|
40
|
-
SolveBio::Filter.new(:omim_id => 145300)
|
41
|
-
|
42
|
-
assert_equal('<SolveBio::Filter [{:or=>[[:omim_id, 144650], [:omim_id, 144600], [:omim_id, 145300]]}]>',
|
43
|
-
filters3.inspect,
|
44
|
-
'combining more than one of a connector (|)')
|
45
|
-
|
46
|
-
assert_equal('<SolveBio::Filter [[:style__between, [5, 10]]]>',
|
47
|
-
SolveBio::Filter.new(:style__between => (5...11)).inspect)
|
48
|
-
assert_equal('<SolveBio::Filter [[:style__between, [5, 10]]]>',
|
49
|
-
SolveBio::Filter.new(:style__between => (5..10)).inspect)
|
50
|
-
|
51
|
-
end
|
52
|
-
|
53
|
-
def test_range_filter
|
54
|
-
assert_equal('<RangeFilter [{:and=>[["hg38_start__range", ' +
|
55
|
-
'[32200000, 32500000]], ' +
|
56
|
-
'["hg38_end__range", [32200000, 32500000]], ' +
|
57
|
-
'["hg38_chromosome", "13"]]}]>',
|
58
|
-
SolveBio::RangeFilter.
|
59
|
-
new("hg38", "13", 32200000, 32500000).inspect)
|
60
|
-
end
|
61
|
-
|
62
|
-
def test_process_filters
|
63
|
-
# FIXME: add more and put in a loop.
|
64
|
-
filters = [[:omid, nil]]
|
65
|
-
expect = filters
|
66
|
-
assert_equal(expect.inspect,
|
67
|
-
SolveBio::Filter.process_filters(filters).inspect)
|
68
|
-
end
|
69
|
-
|
70
|
-
end
|
data/test/test-netrc.rb
DELETED
@@ -1,52 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
$VERBOSE = true
|
3
|
-
require 'test/unit'
|
4
|
-
require 'fileutils'
|
5
|
-
require_relative '../lib/credentials'
|
6
|
-
|
7
|
-
# Does .netrc reading and manipulation work?
|
8
|
-
class TestNetrc < Test::Unit::TestCase
|
9
|
-
|
10
|
-
|
11
|
-
def setup
|
12
|
-
@netrc_path_save = ENV["NETRC_PATH"]
|
13
|
-
path = ENV['NETRC_PATH'] = File.join(File.dirname(__FILE__), 'data')
|
14
|
-
FileUtils.cp(File.join(path, 'netrc-save'), File.join(path, '.netrc'))
|
15
|
-
File.chmod(0600, "#{path}/.netrc")
|
16
|
-
@old_warn_level = $VERBOSE
|
17
|
-
@old_api_host = SolveBio::API_HOST
|
18
|
-
$VERBOSE = nil
|
19
|
-
SolveBio.const_set(:API_HOST, 'https://api.solvebio.com')
|
20
|
-
$VERBOSE = @old_warn_level
|
21
|
-
end
|
22
|
-
|
23
|
-
def teardown
|
24
|
-
ENV["NETRC_PATH"] = @netrc_path_save
|
25
|
-
$VERBOSE = nil
|
26
|
-
SolveBio.const_set(:API_HOST, @old_api_host)
|
27
|
-
$VERBOSE = @old_warn_level
|
28
|
-
end
|
29
|
-
|
30
|
-
include SolveBio::Credentials
|
31
|
-
|
32
|
-
def test_netrc
|
33
|
-
assert netrc_path, 'Should get a location for .netrc'
|
34
|
-
end
|
35
|
-
|
36
|
-
def test_get_credentials
|
37
|
-
assert_equal ['rocky@example.com', 'shhhh'], get_credentials.to_a
|
38
|
-
end
|
39
|
-
|
40
|
-
def test_save_credentials
|
41
|
-
new_values = get_credentials.map{|x| x+"abc"}
|
42
|
-
save_credentials(*new_values)
|
43
|
-
assert_equal(new_values, get_credentials.to_a,
|
44
|
-
'Should append "abc" to creds')
|
45
|
-
end
|
46
|
-
|
47
|
-
def test_delete_credentials
|
48
|
-
delete_credentials
|
49
|
-
assert_equal nil, get_credentials, 'Should be able to delete credentials'
|
50
|
-
end
|
51
|
-
|
52
|
-
end
|
data/test/test-query-batch.rb
DELETED
@@ -1,40 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
$VERBOSE = true
|
3
|
-
require 'socket'
|
4
|
-
require_relative 'helper'
|
5
|
-
require_relative '../lib/resource/main'
|
6
|
-
|
7
|
-
class TestQueryBatch < Test::Unit::TestCase
|
8
|
-
def setup
|
9
|
-
@dataset = SolveBio::Dataset.retrieve(TEST_DATASET_NAME)
|
10
|
-
end
|
11
|
-
|
12
|
-
def test_invalid_batch_query
|
13
|
-
assert_raise SolveBio::Error do
|
14
|
-
SolveBio::BatchQuery
|
15
|
-
.new([
|
16
|
-
@dataset.query(:limit => 1, :fields => [:bogus_field]),
|
17
|
-
@dataset.query(:limit => 10).filter(:bogus_id__gt => 100000)
|
18
|
-
]).execute
|
19
|
-
end
|
20
|
-
|
21
|
-
results = SolveBio::BatchQuery
|
22
|
-
.new([
|
23
|
-
@dataset.query(:limit => 10).filter(:hgnc_id__lt => 100),
|
24
|
-
@dataset.query(:limit => 10).filter(:hgnc_id__gt => 100)
|
25
|
-
]).execute
|
26
|
-
assert_equal(2, results.length)
|
27
|
-
|
28
|
-
end
|
29
|
-
|
30
|
-
def test_batch_query
|
31
|
-
queries = [
|
32
|
-
@dataset.query(:limit => 1),
|
33
|
-
@dataset.query(:limit => 10).filter(:hgnc_id__gt => 100)
|
34
|
-
]
|
35
|
-
results = SolveBio::BatchQuery.new(queries).execute
|
36
|
-
assert_equal(2, results.size)
|
37
|
-
assert_equal(1, results[0]['results'].length)
|
38
|
-
assert_equal(10, results[1]['results'].size)
|
39
|
-
end
|
40
|
-
end
|