neo4j_test_server 1.0.0 → 1.1.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 257b7ce2ee458c295bbbea6d82777f0538f21a94
4
- data.tar.gz: 5f03f0e29debae62a26f866f458090391bba3490
3
+ metadata.gz: 30bce83b04d5fd1b462bf8e95dbad3d6055d0609
4
+ data.tar.gz: fef78201629330e69da32f9f7cd7b3b3e546bbc8
5
5
  SHA512:
6
- metadata.gz: 7e6731ff4c21f4407843a76c07d842b4dcb6ec37f5ce18145cbabce38043ca9a8402287084a5fe98518a8a4058082cfdefd415ef1daa86850a20ea5e84f409ca
7
- data.tar.gz: cf61ba93cbbf36b90e49fc04ca10cde9c0f2459286b0ff84bdd2abc76516e15bd92612ec37cf6b29113799673287f7cb240caab61146d8068418a73196d60a4b
6
+ metadata.gz: dd6da5657dfeca44978240f290a83b3b50434bd100ae2737bbbc8ed2cfa06e4ab682b804347d48d4630bc51e951d68f42053ee2ac9e0bb8492f6f695c2507c67
7
+ data.tar.gz: f9f9e04205838bd0c317063436802c4b987477482db7ab58bd23555b45faa2c91770f97d22d9b19103803c8a45b02f16ce7cacb3054390df0e99bc2621121cc5
data/README.md CHANGED
@@ -27,10 +27,13 @@ require 'sunspot_test/rspec'
27
27
  This gem will automatically startup a Neo4j server running locally for testing purposes. The default server starts at
28
28
  [http://localhost:7474](http://localhost:7474).
29
29
 
30
- The gem also provides rspec hooks for tests that require Neo4j without requiring the server to be started for all of
30
+ This gem also provides rspec hooks for tests that require Neo4j without requiring the server to be started for all of
31
31
  your tests.
32
32
 
33
- ## Writing test that use Neo4jTestServer
33
+ By default, the gem will download and run the "Community-2.2.0" version of Neo4j, see below for changing the edition
34
+ used.
35
+
36
+ ## Writing tests that use Neo4jTestServer
34
37
 
35
38
  In `spec_helper.rb`
36
39
  ```ruby
@@ -51,3 +54,12 @@ describe 'My Tests' do
51
54
  end
52
55
  end
53
56
  ```
57
+
58
+ ## Using a different version of Neo4j
59
+
60
+ Before your tests run, call
61
+ ```ruby
62
+ require 'neo4j_test_server'
63
+
64
+ Neo4jTestServer.edition = 'community-2.0.4' # Or whatever version you'd like to use
65
+ ```
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 1.1.1
@@ -9,6 +9,7 @@ module Neo4jTestServer
9
9
  class << self
10
10
  attr_writer :neo4j_startup_timeout
11
11
  attr_writer :server
12
+ attr_accessor :edition
12
13
 
13
14
  def neo4j_startup_timeout
14
15
  @neo4j_startup_timeout ||= 30
@@ -54,7 +55,11 @@ module Neo4jTestServer
54
55
  end
55
56
 
56
57
  def server
57
- @server ||= Neo4jTest::Server.new
58
+ @server ||= Neo4jTest::Server.new edition
59
+ end
60
+
61
+ def edition
62
+ @edition ||= 'community-2.2.0'
58
63
  end
59
64
 
60
65
  def session
@@ -24,7 +24,7 @@ module Neo4jTest
24
24
 
25
25
  def download_to(edition = '')
26
26
  # We want to ensure that we download the Neo4j archive to the gem location. Not the project's location
27
- File.join(File.dirname(here), file_name(edition))
27
+ File.join(File.expand_path('../../..', here), file_name(edition))
28
28
  end
29
29
 
30
30
  def download_url(edition)
@@ -52,36 +52,45 @@ module Neo4jTest
52
52
  def unzip_neo4j(edition)
53
53
  downloaded_file = download_to(edition)
54
54
 
55
+ clear_install_location
56
+
55
57
  if OS::Underlying.windows?
56
- # Extract and move to neo4j directory
57
- unless File.exist?(install_location)
58
- Zip::ZipFile.open(downloaded_file) do |zip_file|
59
- zip_file.each do |f|
60
- f_path = File.join('.', f.name)
61
- FileUtils.mkdir_p(File.dirname(f_path))
62
- begin
63
- zip_file.extract(f, f_path) unless File.exist?(f_path)
64
- rescue
65
- puts "#{f.name} failed to extract."
66
- end
58
+ unzip_for_windows downloaded_file, edition
59
+ else
60
+ unzip_for_unix downloaded_file, edition
61
+ end
62
+ end
63
+
64
+ def unzip_for_windows(downloaded_file, edition)
65
+ # Extract and move to neo4j directory
66
+ unless File.exist?(install_location)
67
+ Zip::ZipFile.open(downloaded_file) do |zip_file|
68
+ zip_file.each do |f|
69
+ f_path = File.join('.', f.name)
70
+ FileUtils.mkdir_p(File.dirname(f_path))
71
+ begin
72
+ zip_file.extract(f, f_path) unless File.exist?(f_path)
73
+ rescue
74
+ puts "#{f.name} failed to extract."
67
75
  end
68
76
  end
69
- FileUtils.mv "neo4j-#{edition}", install_location
70
- end
71
-
72
- # Install if running with Admin Privileges
73
- if `reg query "HKU\\S-1-5-19"`.size > 0
74
- `"#{install_location}/bin/neo4j install"`
75
- puts 'Neo4j Installed as a service.'
76
77
  end
78
+ FileUtils.mv "neo4j-#{edition}", install_location
79
+ end
77
80
 
78
- else
79
- `tar -xvf #{downloaded_file}`
80
- `mv neo4j-#{edition} #{install_location}`
81
- puts 'Neo4j Installed in to neo4j directory.'
81
+ # Install if running with Admin Privileges
82
+ if `reg query "HKU\\S-1-5-19"`.size > 0
83
+ `"#{install_location}/bin/neo4j install"`
84
+ puts 'Neo4j Installed as a service.'
82
85
  end
83
86
  end
84
87
 
88
+ def unzip_for_unix(downloaded_file, edition)
89
+ `tar -xvf #{downloaded_file}`
90
+ `mv neo4j-#{edition} #{install_location}`
91
+ puts 'Neo4j Installed in to neo4j directory.'
92
+ end
93
+
85
94
  def request_url(url)
86
95
  status = HTTParty.head(url).code
87
96
  fail "#{edition} is not available to download, try a different version" if status < 200 || status >= 300
@@ -99,6 +108,10 @@ module Neo4jTest
99
108
  "#{path}/#{get_environment}"
100
109
  end
101
110
 
111
+ def clear_install_location
112
+ FileUtils.rmtree(install_location)
113
+ end
114
+
102
115
  def config_location
103
116
  "#{install_location}/conf/neo4j-server.properties"
104
117
  end
@@ -15,10 +15,9 @@ module Neo4jTest
15
15
 
16
16
  attr_writer :neo4j_data_dir, :neo4j_home, :neo4j_jar, :bind_address, :port
17
17
 
18
- def initialize(*args)
18
+ def initialize(ed = 'community-2.2.0')
19
19
  ensure_java_installed
20
- self.edition = 'community-2.2.0'
21
- super(*args)
20
+ self.edition = ed
22
21
  end
23
22
 
24
23
  def to_s
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: neo4j_test_server 1.0.0 ruby lib
5
+ # stub: neo4j_test_server 1.1.1 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "neo4j_test_server"
9
- s.version = "1.0.0"
9
+ s.version = "1.1.1"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Swimminschrage"]
14
- s.date = "2015-04-20"
14
+ s.date = "2015-04-21"
15
15
  s.description = "Installs/Autostarts a Neo4j instance for your tests"
16
16
  s.email = "Swimminschrage@gmail.com"
17
17
  s.extra_rdoc_files = [
@@ -33,6 +33,17 @@ describe 'Neo4jTest' do
33
33
  expect { Neo4jTestServer.start_neo4j_server }.to raise_error(Neo4jTestServer::TimeoutError)
34
34
  end
35
35
  end
36
+
37
+ describe '#edition' do
38
+ it 'allows the user to specify the edition to install' do
39
+ edition = 'community-2.0.4'
40
+ allow(Neo4jTest::Installer).to receive(:bootstrap)
41
+ Neo4jTestServer.edition = edition
42
+
43
+ expect(Neo4jTest::Installer).to receive(:bootstrap).with('community-2.0.4')
44
+ Neo4jTestServer.server.bootstrap
45
+ end
46
+ end
36
47
  end
37
48
 
38
49
  describe '::Installer' do
@@ -105,7 +116,7 @@ describe 'Neo4jTest' do
105
116
 
106
117
  it 'returns the correct save to location' do
107
118
  allow(OS::Underlying).to receive(:windows?).and_return is_windows?
108
- allow(Neo4jTest::Installer).to receive(:here).and_return("#{pwd}/test.rb")
119
+ allow(Neo4jTest::Installer).to receive(:here).and_return("#{pwd}/lib/anotherfolder/test.rb")
109
120
  expect(Neo4jTest::Installer.download_to(edition)).to eq expected_download_to
110
121
  end
111
122
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neo4j_test_server
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Swimminschrage
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-20 00:00:00.000000000 Z
11
+ date: 2015-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: neo4j