solvebio 1.6.1 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|