moto 0.0.3 → 0.0.4
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 +4 -4
- data/lib/cli.rb +17 -6
- data/lib/clients/website.rb +2 -9
- data/lib/runner.rb +4 -3
- data/lib/thread_context.rb +1 -1
- metadata +22 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9148f21a0e6aa5b6a157f4430be6e4669c8ebb5f
|
4
|
+
data.tar.gz: 493eceb7d79389aace5dfb095167ec1639024505
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 59ed4b2f7ce51f3c1480673de389ff26ca961502474253cca32de6189f0d2fe7404dc937331ede52bfb0c185296ef4fa5bf5c2255502b7d9a58f0283b97aa39c
|
7
|
+
data.tar.gz: 802ff8c1cef394da74787ea43433ce46f213ab67b48a5abefce6c3a5c48dad7acf846e0292363ba7390bae72c40f2c7f4ae4dd4d5045ac1033eb17973f3fffc2
|
data/lib/cli.rb
CHANGED
@@ -1,17 +1,22 @@
|
|
1
|
+
# TODO: fix this dumb verification of current working directory
|
2
|
+
unless File.exists? "#{Dir.pwd}/config/moto.rb"
|
3
|
+
puts "Config file (config/moto.rb) not present."
|
4
|
+
puts "Does current working directory contain Moto application?"
|
5
|
+
exit 1
|
6
|
+
end
|
7
|
+
|
1
8
|
require 'logger'
|
2
9
|
require 'pp'
|
3
10
|
require 'yaml'
|
4
11
|
require 'active_support/inflector'
|
5
12
|
require 'active_support/core_ext/object/blank'
|
6
|
-
|
13
|
+
|
14
|
+
require 'bundler/setup'
|
15
|
+
Bundler.require
|
7
16
|
|
8
17
|
APP_DIR = Dir.pwd
|
9
18
|
MOTO_DIR = File.dirname(File.dirname(__FILE__))
|
10
19
|
|
11
|
-
# TODO detect if cwd contains MotoApp
|
12
|
-
|
13
|
-
require "#{APP_DIR}/config/moto"
|
14
|
-
|
15
20
|
require_relative './empty_listener'
|
16
21
|
require_relative './test_logging'
|
17
22
|
require_relative './runner_logging'
|
@@ -44,7 +49,13 @@ module Moto
|
|
44
49
|
|
45
50
|
# listeners = []
|
46
51
|
listeners = [Moto::Listeners::Console]
|
47
|
-
|
52
|
+
environments = [:qa, :qa2]
|
53
|
+
# handle possible syntax error here
|
54
|
+
config = eval(File.read("#{APP_DIR}/config/moto.rb"))
|
55
|
+
# overwrite config with values from ARGV (if any given)
|
56
|
+
# e.g. config[:capybara][:default_driver] = :selenium
|
57
|
+
|
58
|
+
runner = Moto::Runner.new(tests, listeners, environments, config)
|
48
59
|
runner.run
|
49
60
|
end
|
50
61
|
|
data/lib/clients/website.rb
CHANGED
@@ -10,17 +10,10 @@ module Moto
|
|
10
10
|
ignore_logging(:page)
|
11
11
|
ignore_logging(:context)
|
12
12
|
ignore_logging(:session)
|
13
|
-
|
14
|
-
def init
|
15
|
-
# can be overriden
|
16
|
-
@options = {
|
17
|
-
capybara_backend: :selenium
|
18
|
-
}
|
19
|
-
end
|
20
|
-
|
13
|
+
|
21
14
|
def start_run
|
22
15
|
# TODO: make session driver configurable
|
23
|
-
@session = Capybara::Session.new(
|
16
|
+
@session = Capybara::Session.new(context.runner.config[:capybara][:default_driver])
|
24
17
|
@pages = {}
|
25
18
|
end
|
26
19
|
|
data/lib/runner.rb
CHANGED
@@ -6,8 +6,9 @@ module Moto
|
|
6
6
|
attr_reader :logger
|
7
7
|
attr_reader :environments
|
8
8
|
attr_reader :assert
|
9
|
+
attr_reader :config
|
9
10
|
|
10
|
-
def initialize(tests, listeners, config
|
11
|
+
def initialize(tests, listeners, environments, config)
|
11
12
|
@tests = tests
|
12
13
|
@config = config
|
13
14
|
@threads = []
|
@@ -20,7 +21,7 @@ module Moto
|
|
20
21
|
@result = Result.new(self)
|
21
22
|
|
22
23
|
# TODO: validate envs, maybe no-env should be supported as well?
|
23
|
-
@environments =
|
24
|
+
@environments = environments
|
24
25
|
|
25
26
|
@listeners = []
|
26
27
|
listeners.each do |l|
|
@@ -31,7 +32,7 @@ module Moto
|
|
31
32
|
|
32
33
|
def run
|
33
34
|
@listeners.each { |l| l.start_run }
|
34
|
-
test_slices = @tests.each_slice((@tests.size.to_f/@config[:
|
35
|
+
test_slices = @tests.each_slice((@tests.size.to_f/@config[:thread_count]).ceil).to_a
|
35
36
|
(0...test_slices.count).each do |i|
|
36
37
|
@threads << Thread.new do
|
37
38
|
tc = ThreadContext.new(self, test_slices[i])
|
data/lib/thread_context.rb
CHANGED
@@ -74,7 +74,7 @@ module Moto
|
|
74
74
|
# TODO: remove log files from previous execution
|
75
75
|
@logger = Logger.new(File.open(@log_path, File::WRONLY | File::TRUNC | File::CREAT))
|
76
76
|
# TODO: make logger level configurable
|
77
|
-
@logger.level =
|
77
|
+
@logger.level = @runner.config[:log_level]
|
78
78
|
@current_test = test
|
79
79
|
@runner.listeners.each { |l| l.start_test(test) }
|
80
80
|
@clients.each_value { |c| c.start_test(test) }
|
metadata
CHANGED
@@ -1,21 +1,37 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: moto
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bartek Wilczek
|
8
|
-
- Maciej
|
8
|
+
- Maciej Stark
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-08-
|
13
|
-
dependencies:
|
12
|
+
date: 2015-08-17 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: activesupport
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ~>
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '3.2'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ~>
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '3.2'
|
14
28
|
description: This is a development version of a rails philosophy inspired framework
|
15
29
|
for web applications functional testing. It supports (or will support) threading,
|
16
30
|
scenario parametrization, different test environments and much more. Stay tuned
|
17
31
|
for v.1.0.0 in the near future.
|
18
|
-
email:
|
32
|
+
email:
|
33
|
+
- bwilczek@gmail.com
|
34
|
+
- stark.maciej@gmail.com
|
19
35
|
executables:
|
20
36
|
- moto
|
21
37
|
extensions: []
|
@@ -57,7 +73,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
57
73
|
version: '0'
|
58
74
|
requirements: []
|
59
75
|
rubyforge_project:
|
60
|
-
rubygems_version: 2.0.
|
76
|
+
rubygems_version: 2.0.15
|
61
77
|
signing_key:
|
62
78
|
specification_version: 4
|
63
79
|
summary: Moto - yet another web testing framework
|