lucian 0.3.2 → 0.3.3

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: 9f77c1e0cdc68349c919e5d737fcf5f59d99f24a
4
- data.tar.gz: '09025f5570d1e96f353963d6d56efc41d7a39df6'
3
+ metadata.gz: 36a2aad29327c96309baf4d47fa898365fe5ada1
4
+ data.tar.gz: '069a6d575ec431edf9db16163c8de43de07486ee'
5
5
  SHA512:
6
- metadata.gz: aa45ed7b4178aa0f5a80eae70343624dfa1f197cfd52bd92771f1c8b42e439445bcaa2d12df784008a4be285aaf1e1ccc316372321473bb5e938b6b6d961ce44
7
- data.tar.gz: 2ca6d77b677893c951a487f4866d9dcbfd6e40ca636bd924087dd37d56442ece424bd5a845c0ea907dcced9b8293050e373aebbff689993bcc1e41d4a20f5a1a
6
+ metadata.gz: ec346803a19995e42de73804ae031a17e039f2eacbfa1bacd2a9576186739a1647f447139177981b4072bcb11c33e08ebdf9f293a527e3fc6de4e8fa012d7066
7
+ data.tar.gz: 3720f36dfc354700eaa4b115a9facb4f49c9bff1a7d1d3e1a0ec5401ae48226e2dba2a0c98fca0db4c99ecada5dfd3ea8217d3b820290d1db1ce6e896f207a7f
data/lib/lucian/engine.rb CHANGED
@@ -7,6 +7,7 @@ module Lucian
7
7
  class Engine
8
8
  attr_reader :compose_file, :compose_data, :compose_directory, :network_name #lucian_files
9
9
 
10
+ attr_reader :running_services
10
11
  attr_reader :docker_compose, :network_name, :examples
11
12
 
12
13
  ##
@@ -26,6 +27,7 @@ module Lucian
26
27
  @examples = examples
27
28
  config_compose
28
29
  require 'lucian_helper' if File.exist?(@lucian_helper)
30
+ @running_services ||= []
29
31
  Lucian.engine = self
30
32
  end
31
33
 
@@ -51,20 +53,26 @@ module Lucian
51
53
 
52
54
  ##
53
55
  # Run and validate services status
54
- def run_docker_service(services_names)
56
+ def run_docker_service(services_names=[])
55
57
  services_names.collect!(&:to_s)
56
- services_names.each do |service|
57
- @docker_compose.up(service, {:detached => true})
58
+ services_names = services_names - @running_services
59
+ if services_names.count > 0
60
+ @docker_compose.up(*services_names, {:detached => true})
61
+ @running_services += services_names
62
+ @running_services.uniq!
63
+ exited = @docker_compose.ps.where { |c| !c.up? && services_names.include?(c.image) }
64
+ raise "We have some exited containers: " + exited.join(', ') if exited.count > 0
58
65
  end
59
- exited = @docker_compose.ps.where { |c| !c.up? && services_names.include?(c.image) }
60
- raise "We have some exited containers: " + exited.join(', ') if exited.count > 0
61
66
  end
62
67
 
63
68
  ##
64
69
  # Stop docker service
65
70
  def stop_docker_service(services_names)
66
- services_names.each do |service|
67
- @docker_compose.stop(service)
71
+ if services_names.count > 0
72
+ puts "\n"
73
+ @docker_compose.stop(*services_names)
74
+ @running_services -= services_names
75
+ @running_services.uniq!
68
76
  end
69
77
  end
70
78
 
@@ -79,7 +87,7 @@ module Lucian
79
87
  ##
80
88
  # Run lucian test
81
89
  def run_lucian_test(example)
82
- BoardCaster.print("Running lucian test ..", "yellow")
90
+ # BoardCaster.print("Running lucian test ..", "yellow")
83
91
  Lucian.container.exec(['lucian', '--example', example])
84
92
  end
85
93
 
@@ -1,3 +1,3 @@
1
1
  module Lucian
2
- VERSION = "0.3.2"
2
+ VERSION = "0.3.3"
3
3
  end
@@ -55,7 +55,7 @@ module RSpec::Core
55
55
  end
56
56
 
57
57
  def self.run(reporter=RSpec::Core::NullReporter)
58
- services = self.metadata[:services] || []
58
+ self_services = self.metadata[:services] || []
59
59
  parent_services = []
60
60
  unless self.metadata[:parent_example_group].nil?
61
61
  current_parent = self.metadata[:parent_example_group]
@@ -64,8 +64,9 @@ module RSpec::Core
64
64
  break if current_parent[:parent_example_group].nil?
65
65
  current_parent = current_parent[:parent_example_group]
66
66
  end
67
+ self_services = parent_services.flatten.uniq - self_services
67
68
  end
68
- services = (services+parent_services).flatten.compact.uniq
69
+ services = (self_services+parent_services).flatten.compact.uniq
69
70
  if services.count > 0 && ENV['LUCIAN_DOCKER'] == nil
70
71
  Lucian::BoardCaster.print(">> ExampleGroup : "+self.metadata[:full_description].to_s, "cyan")
71
72
  RSpec.lucian_engine.run_docker_service(services)
@@ -88,8 +89,8 @@ module RSpec::Core
88
89
  false
89
90
  ensure
90
91
  run_after_context_hooks(new('after(:context) hook')) if should_run_context_hooks
91
- if services.count > 0 && ENV['LUCIAN_DOCKER'] == nil
92
- RSpec.lucian_engine.stop_docker_service(services)
92
+ if self_services.count > 0 && ENV['LUCIAN_DOCKER'] == nil
93
+ RSpec.lucian_engine.stop_docker_service(self_services)
93
94
  end
94
95
  reporter.example_group_finished(self)
95
96
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lucian
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tanapat Sainak
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-02-24 00:00:00.000000000 Z
11
+ date: 2017-03-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec-core