moto 0.0.15 → 0.0.17

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: 5d372116a3d958f4b63271540b60d41d035f270e
4
- data.tar.gz: c9aa807fd63cae0abe92f9103c1c44ea4f431235
3
+ metadata.gz: 67513bc98ab3246d5619d69d560a15956f4d01f7
4
+ data.tar.gz: e062119f15ac74b5012c701525a0e2ff6c1463ab
5
5
  SHA512:
6
- metadata.gz: 274cc49288e9aaf523e23c64b9fd572d127c469f45213d234039e4fefc4cec598d97755e3208caea948cd2f24975b75dc74f857c18ae43f853b10422cd64eb1d
7
- data.tar.gz: e101a87b1351073c09ac40cefc1fe76613a94783d25db13f2b4494c18756acce963d98f5639a429e2d684f83ce1139c0f81197958589e5b4b15bab75ad9c1a5a
6
+ metadata.gz: 93f8ce00760e6ea9e2c37d7f873d5a1e2bc1fa6a4f9f316e365ba0584a98eeff49445822683fb2e9da608f22424e14a5818b732e075cefcea8a1ff0e6908b026
7
+ data.tar.gz: dad258914f1fd10fa21f30614621c9dc9ab2f552a87d420cf848ab33880765dbc52aac23412e674e20018d92baf3b1c6728853a7281bbaebf9acc6514c8aa4f7
data/lib/cli.rb CHANGED
@@ -1,19 +1,9 @@
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
-
8
1
  require 'logger'
9
2
  require 'pp'
10
3
  require 'yaml'
11
4
  require 'active_support/inflector'
12
5
  require 'active_support/core_ext/object/blank'
13
6
 
14
- require 'bundler/setup'
15
- Bundler.require
16
-
17
7
  module MotoApp
18
8
  DIR = Dir.pwd
19
9
  end
@@ -32,6 +22,7 @@ require_relative './result'
32
22
  require_relative './assert'
33
23
  require_relative './test'
34
24
  require_relative './page'
25
+ require_relative './version'
35
26
  require_relative './clients/base'
36
27
  require_relative './listeners/base'
37
28
  require_relative './listeners/console'
@@ -2,15 +2,19 @@ require 'capybara'
2
2
 
3
3
  module Moto
4
4
  module Clients
5
-
6
- class Website < Moto::Clients::Base
5
+
6
+ class Website < Moto::Clients::Base
7
7
 
8
8
  attr_reader :session
9
-
9
+
10
10
  ignore_logging(:page)
11
11
  ignore_logging(:context)
12
12
  ignore_logging(:session)
13
-
13
+
14
+ def init
15
+ register_grid_driver
16
+ end
17
+
14
18
  def start_run
15
19
  # TODO: make session driver configurable
16
20
  context.runner.my_config[:capybara][:default_selector] &&
@@ -18,32 +22,50 @@ module Moto
18
22
  @session = Capybara::Session.new(context.runner.my_config[:capybara][:default_driver])
19
23
  @pages = {}
20
24
  end
21
-
25
+
22
26
  def end_run
23
- @session.driver.browser.close # TODO: check that it really works
27
+ @session.driver.quit
24
28
  end
25
-
29
+
26
30
  def start_test(test)
27
31
  # @context.current_test.logger.info("Hi mom, I'm opening some pages!")
28
32
  @session.reset_session!
29
33
  end
30
-
34
+
31
35
  def end_test(test)
32
36
  @session.reset_session!
33
- end
34
-
35
- def page(p)
36
- page_class_name = "#{self.class.name}::Pages::#{p}"
37
- page_class_name.gsub!('Moto::', 'MotoApp::')
38
- if @pages[page_class_name].nil?
37
+ end
38
+
39
+ def page(p)
40
+ page_class_name = "#{self.class.name}::Pages::#{p}"
41
+ page_class_name.gsub!('Moto::', 'MotoApp::')
42
+ if @pages[page_class_name].nil?
39
43
  a = page_class_name.underscore.split('/')
40
- page_path = a[1..20].join('/')
41
- require "#{MotoApp::DIR}/lib/#{page_path}"
42
- @pages[page_class_name] = page_class_name.constantize.new(self)
43
- end
44
- @pages[page_class_name]
45
- end
46
-
47
- end
44
+ page_path = a[1..-1].join('/')
45
+ require "#{MotoApp::DIR}/lib/#{page_path}"
46
+ @pages[page_class_name] = page_class_name.constantize.new(self)
47
+ end
48
+ @pages[page_class_name]
49
+ end
50
+
51
+ private
52
+
53
+ def register_grid_driver
54
+ grid_config = context.runner.my_config[:capybara][:grid]
55
+ return if grid_config.nil?
56
+ if grid_config[:capabilities].nil?
57
+ capabilities = Selenium::WebDriver::Remote::Capabilities.firefox
58
+ else
59
+ capabilities = Selenium::WebDriver::Remote::Capabilities.new(grid_config[:capabilities])
60
+ end
61
+ Capybara.register_driver :grid do |app|
62
+ Capybara::Selenium::Driver.new(app,
63
+ :browser => :remote,
64
+ :url => grid_config[:url],
65
+ :desired_capabilities => capabilities)
66
+ end
67
+ end
68
+
69
+ end
48
70
  end
49
71
  end
data/lib/parser.rb CHANGED
@@ -9,17 +9,32 @@ module Moto
9
9
  class Parser
10
10
 
11
11
  def self.run(argv)
12
-
13
- # TODO Generate app / Change the way parsing options goes so it doesnt generate them if they`re not needed
14
- case argv[0]
15
- when 'run' then Moto::Cli.run run_parse(argv)
16
- when 'help' then show_help
17
- when 'generate' then Moto::AppGenerator.run generate_parse(argv)
18
- else puts "Command '#{argv[0]}' not recognized. Type help for list of supported commands."
12
+ begin
13
+ # TODO Generate app / Change the way parsing options goes so it doesnt generate them if they`re not needed
14
+ case argv[0]
15
+ when '--version' then puts Moto::VERSION
16
+ when 'run' then Moto::Cli.run run_parse(argv)
17
+ when 'help' then show_help
18
+ when 'generate' then Moto::AppGenerator.run generate_parse(argv)
19
+ else puts "Command '#{argv[0]}' not recognized. Type help for list of supported commands."
20
+ end
21
+ rescue Exception => e
22
+ puts e.message
19
23
  end
20
24
  end
21
25
 
22
26
  def self.run_parse(argv)
27
+
28
+ # TODO: fix this dumb verification of current working directory.
29
+ unless File.exists? "#{MotoApp::DIR}/config/moto.rb"
30
+ msg = "Config file (config/moto.rb) not present.\n"
31
+ msg << 'Does current working directory contain Moto application?'
32
+ raise msg
33
+ end
34
+
35
+ require 'bundler/setup'
36
+ Bundler.require
37
+
23
38
  # Default options
24
39
  options = {}
25
40
  options[:reporters] = []
@@ -33,13 +48,13 @@ module Moto
33
48
  # TODO const
34
49
  # TODO reporters should be consts - not strings
35
50
  OptionParser.new do |opts|
36
- opts.on('-t', '--tests Tests', Array) { |v| options[:tests ] = v }
37
- opts.on('-g', '--tags Tags', Array) { |v| options[:tags ] = v }
38
- opts.on('-r', '--reporters Reporters', Array) { |v| options[:reporters] = v }
39
- opts.on('-e', '--environments Environment', Array) { |v| options[:environments] = v }
40
- opts.on('-c', '--const Const') { |v| options[:const] = v }
41
- opts.on('-n', '--name Name') { |v| options[:name] = v }
42
- opts.on('-f', '--config Config') { |v| options[:config] = options[:config].merge( eval( v ) ) }
51
+ opts.on('-t', '--tests Tests', Array) { |v| options[:tests ] = v }
52
+ opts.on('-g', '--tags Tags', Array) { |v| options[:tags ] = v }
53
+ opts.on('-r', '--reporters Reporters', Array) { |v| options[:reporters] = v }
54
+ opts.on('-e', '--environments Environment', Array) { |v| options[:environments] = v }
55
+ opts.on('-c', '--const Const') { |v| options[:const] = v }
56
+ opts.on('-n', '--name Name') { |v| options[:name] = v }
57
+ opts.on('-f', '--config Config') { |v| options[:config] = options[:config].merge( eval( v ) ) }
43
58
  end.parse!
44
59
 
45
60
  if options[:name].empty?
@@ -73,7 +88,8 @@ module Moto
73
88
 
74
89
  def self.show_help
75
90
  puts """
76
- Moto CLI Help:
91
+ Moto (#{Moto::VERSION}) CLI Help:
92
+ moto --version Display current version
77
93
  moto run:
78
94
  -t, --tests = Tests to be executed. For e.x Tests\Failure\Failure.rb should be passed as Tests::Failure
79
95
  -r, --reporter = Reporters to be used. Defaults are Moto::Listeners::ConsoleDots, Moto::Listeners::JunitXml
data/lib/version.rb ADDED
@@ -0,0 +1,3 @@
1
+ module Moto
2
+ VERSION = '0.0.17'
3
+ end
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moto
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.15
4
+ version: 0.0.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bartek Wilczek
8
8
  - Maciej Stark
9
+ - Radosław Sporny
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2015-12-08 00:00:00.000000000 Z
13
+ date: 2015-12-31 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: activesupport
@@ -74,6 +75,7 @@ description: This is a development version of a rails philosophy inspired framew
74
75
  email:
75
76
  - bwilczek@gmail.com
76
77
  - stark.maciej@gmail.com
78
+ - r.sporny@gmail.com
77
79
  executables:
78
80
  - moto
79
81
  extensions: []
@@ -93,6 +95,7 @@ files:
93
95
  - lib/test_generator.rb
94
96
  - lib/test_logging.rb
95
97
  - lib/thread_context.rb
98
+ - lib/version.rb
96
99
  - lib/clients/base.rb
97
100
  - lib/clients/website.rb
98
101
  - lib/exceptions/moto.rb