taza 0.8.7 → 0.9.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/.gitignore +5 -0
- data/.rvmrc +49 -0
- data/Gemfile +4 -0
- data/History.txt +7 -0
- data/README +1 -3
- data/Rakefile +5 -0
- data/TODO +22 -0
- data/bin/taza +0 -0
- data/generators/flow/flow_generator.rb +1 -1
- data/generators/page/page_generator.rb +1 -1
- data/generators/partial/partial_generator.rb +1 -1
- data/generators/site/site_generator.rb +1 -1
- data/lib/app_generators/taza/taza_generator.rb +1 -1
- data/lib/app_generators/taza/templates/rakefile.rb.erb +5 -4
- data/lib/app_generators/taza/templates/spec_helper.rb.erb +3 -3
- data/lib/extensions/object.rb +0 -27
- data/lib/extensions/string.rb +13 -2
- data/lib/formatters/failing_examples_formatter.rb +8 -0
- data/lib/taza.rb +3 -1
- data/lib/taza.rb.backup +24 -0
- data/lib/taza/browser.rb +10 -5
- data/lib/taza/entity.rb +2 -2
- data/lib/taza/fixtures.rb +9 -5
- data/lib/taza/options.rb +0 -0
- data/lib/taza/settings.rb +1 -1
- data/lib/taza/site.rb +0 -2
- data/lib/taza/tasks.rb +4 -9
- data/lib/taza/version.rb +3 -0
- data/spec/array_spec.rb +4 -4
- data/spec/browser_spec.rb +9 -36
- data/spec/entity_spec.rb +2 -2
- data/spec/fixture_spec.rb +3 -3
- data/spec/fixtures_spec.rb +12 -11
- data/spec/flow_generator_spec.rb +1 -4
- data/spec/hash_spec.rb +1 -1
- data/spec/page_generator_spec.rb +2 -2
- data/spec/page_module_spec.rb +2 -2
- data/spec/page_spec.rb +9 -9
- data/spec/partial_generator_spec.rb +1 -1
- data/spec/platform/windows/browser_win.rb +47 -0
- data/spec/project_generator_spec.rb +1 -15
- data/spec/sandbox/fixtures/foo_site/bars.yml +0 -0
- data/spec/sandbox/fixtures/foos.yml +0 -0
- data/spec/sandbox/pages/foo/bay.rb +0 -0
- data/spec/sandbox/pages/foo/baz.rb +0 -0
- data/spec/settings_spec.rb +1 -1
- data/spec/site_fixtures_spec.rb +2 -5
- data/spec/site_generator_spec.rb +3 -3
- data/spec/site_spec.rb +6 -6
- data/spec/spec_helper.rb +9 -14
- data/spec/string_spec.rb +5 -1
- data/spec/taza_bin_spec.rb +1 -1
- data/spec/taza_tasks_spec.rb +6 -6
- data/taza.gemspec +31 -46
- metadata +170 -117
- data/VERSION.yml +0 -4
- data/spec/object_spec.rb +0 -29
data/.rvmrc
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
#!/usr/bin/env bash
|
2
|
+
|
3
|
+
# This is an RVM Project .rvmrc file, used to automatically load the ruby
|
4
|
+
# development environment upon cd'ing into the directory
|
5
|
+
|
6
|
+
# First we specify our desired <ruby>[@<gemset>], the @gemset name is optional.
|
7
|
+
environment_id="ree-1.8.7-2011.03@taza"
|
8
|
+
|
9
|
+
#
|
10
|
+
# First we attempt to load the desired environment directly from the environment
|
11
|
+
# file. This is very fast and efficicent compared to running through the entire
|
12
|
+
# CLI and selector. If you want feedback on which environment was used then
|
13
|
+
# insert the word 'use' after --create as this triggers verbose mode.
|
14
|
+
#
|
15
|
+
if [[ -d "${rvm_path:-$HOME/.rvm}/environments" \
|
16
|
+
&& -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]] ; then
|
17
|
+
\. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
|
18
|
+
|
19
|
+
[[ -s ".rvm/hooks/after_use" ]] && . ".rvm/hooks/after_use"
|
20
|
+
else
|
21
|
+
# If the environment file has not yet been created, use the RVM CLI to select.
|
22
|
+
rvm --create "$environment_id"
|
23
|
+
fi
|
24
|
+
|
25
|
+
#
|
26
|
+
# If you use an RVM gemset file to install a list of gems (*.gems), you can have
|
27
|
+
# it be automatically loaded. Uncomment the following and adjust the filename if
|
28
|
+
# necessary.
|
29
|
+
#
|
30
|
+
# filename=".gems"
|
31
|
+
# if [[ -s "$filename" ]] ; then
|
32
|
+
# rvm gemset import "$filename" | grep -v already | grep -v listed | grep -v complete | sed '/^$/d'
|
33
|
+
# fi
|
34
|
+
|
35
|
+
#
|
36
|
+
# If you use bundler and would like to run bundle each time you enter the
|
37
|
+
# directory, you can uncomment the following code.
|
38
|
+
#
|
39
|
+
# # Ensure that Bundler is installed. Install it if it is not.
|
40
|
+
# if ! command -v bundle >/dev/null; then
|
41
|
+
# printf "The rubygem 'bundler' is not installed. Installing it now.\n"
|
42
|
+
# gem install bundler
|
43
|
+
# fi
|
44
|
+
#
|
45
|
+
# # Bundle while reducing excess noise.
|
46
|
+
# printf "Bundling your gems. This may take a few minutes on a fresh clone.\n"
|
47
|
+
# bundle | grep -v '^Using ' | grep -v ' is complete' | sed '/^$/d'
|
48
|
+
#
|
49
|
+
|
data/Gemfile
ADDED
data/History.txt
CHANGED
data/README
CHANGED
@@ -39,15 +39,13 @@ Here's an example for starting a project around the Google sites
|
|
39
39
|
$ ./script/generate site google
|
40
40
|
$ ./script/generate page home_page google
|
41
41
|
$ ./script/generate flow search google
|
42
|
-
$ rake spec:
|
42
|
+
$ rake spec:isolation:google
|
43
43
|
|
44
44
|
That will generate an RSpec HTML report at artifacts/functional/google/index.html
|
45
45
|
|
46
46
|
|
47
47
|
== REQUIREMENTS:
|
48
48
|
|
49
|
-
* taglob
|
50
|
-
|
51
49
|
== INSTALL:
|
52
50
|
|
53
51
|
* sudo gem install taza
|
data/Rakefile
ADDED
data/TODO
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
Done:
|
2
|
+
+ Tagging test's (resolution: taglob)
|
3
|
+
+ sites and pages (resolution: Taza::Site)
|
4
|
+
+ generators for rakefile (resolution: uhh we made one?)
|
5
|
+
+ running tests by tag (resolution: ???)
|
6
|
+
+ gem server (resolution: taylor spiked this out)
|
7
|
+
+ build artifact of a video of a test running (resolution: we have two stories around this now)
|
8
|
+
+ test framework choices - what are we going to use and why we are using the one we are (resolution: rspec)
|
9
|
+
+ accessing the actual browser object (who creates it, who tears it down, etc)
|
10
|
+
+ block teardown of browser if yield is given for site
|
11
|
+
+ gem dependencies via hoe.(taglob,rake,rspec,mocha)
|
12
|
+
+ getting settings of a site: ex ECOM.settings delgates to taza::settings.site_file(ecom)
|
13
|
+
+ mocks
|
14
|
+
|
15
|
+
taza
|
16
|
+
- get rid of all the dumb ^M windows line endings
|
17
|
+
- url resolving
|
18
|
+
- ability to change yaml for a site
|
19
|
+
- ability to run integration tests for just a site
|
20
|
+
- clean all the config tests
|
21
|
+
- add test/spec support for generators
|
22
|
+
- add test/spec support for fixtures
|
data/bin/taza
CHANGED
File without changes
|
@@ -24,7 +24,7 @@ class TazaGenerator < RubiGen::Base
|
|
24
24
|
m.template "spec_helper.rb.erb", File.join("spec","spec_helper.rb")
|
25
25
|
m.dependency "install_rubigen_scripts", [destination_root, 'taza'],
|
26
26
|
:shebang => options[:shebang], :collision => :force
|
27
|
-
m.template "console.erb", File.join("script","console")
|
27
|
+
m.template "console.erb", File.join("script","console"), {:chmod => 0755}
|
28
28
|
m.template "console.cmd.erb", File.join("script","console.cmd")
|
29
29
|
end
|
30
30
|
end
|
@@ -3,8 +3,9 @@ require 'rubygems'
|
|
3
3
|
require 'taza/tasks'
|
4
4
|
|
5
5
|
Taza::Rake::Tasks.new do |t|
|
6
|
-
file_hole = "artifacts/#{Time.now.to_i}"
|
7
|
-
t.spec_opts = ["--
|
8
|
-
|
9
|
-
|
6
|
+
file_hole = FileUtils.mkdir_p "artifacts/#{Time.now.to_i}"
|
7
|
+
t.spec_opts = ["--require taza",
|
8
|
+
"--format html --out #{file_hole}/index.html",
|
9
|
+
"--format p" ,
|
10
|
+
"--format FailingExamplesFormatter --out #{file_hole}/failing_examples.txt"]
|
10
11
|
end
|
@@ -1,11 +1,11 @@
|
|
1
1
|
ENV['TAZA_ENV'] = "isolation" if ENV['TAZA_ENV'].nil?
|
2
2
|
require 'rubygems'
|
3
|
-
require '
|
3
|
+
require 'rspec'
|
4
4
|
require 'mocha'
|
5
5
|
|
6
6
|
lib_path = File.expand_path("#{File.dirname(__FILE__)}/../lib/sites")
|
7
7
|
$LOAD_PATH.unshift lib_path unless $LOAD_PATH.include?(lib_path)
|
8
8
|
|
9
|
-
|
9
|
+
RSpec.configure do |config|
|
10
10
|
config.mock_with :mocha
|
11
|
-
end
|
11
|
+
end
|
data/lib/extensions/object.rb
CHANGED
@@ -1,31 +1,4 @@
|
|
1
1
|
# instance_exec comes with >1.8.7 thankfully
|
2
|
-
if VERSION <= '1.8.6'
|
3
|
-
class Object
|
4
|
-
def metaclass
|
5
|
-
class << self; self; end
|
6
|
-
end
|
7
|
-
|
8
|
-
module InstanceExecHelper; end
|
9
|
-
include InstanceExecHelper
|
10
|
-
# instance_exec method evaluates a block of code relative to the specified object, with parameters whom come from outside the object.
|
11
|
-
def instance_exec(*args, &block)
|
12
|
-
begin
|
13
|
-
old_critical, Thread.critical = Thread.critical, true
|
14
|
-
n = 0
|
15
|
-
n += 1 while respond_to?(mname="__instance_exec#{n}")
|
16
|
-
InstanceExecHelper.module_eval{ define_method(mname, &block) }
|
17
|
-
ensure
|
18
|
-
Thread.critical = old_critical
|
19
|
-
end
|
20
|
-
begin
|
21
|
-
ret = send(mname, *args)
|
22
|
-
ensure
|
23
|
-
InstanceExecHelper.module_eval{ remove_method(mname) } rescue nil
|
24
|
-
end
|
25
|
-
ret
|
26
|
-
end
|
27
|
-
end
|
28
|
-
end
|
29
2
|
class Object
|
30
3
|
def metaclass
|
31
4
|
class << self; self; end
|
data/lib/extensions/string.rb
CHANGED
@@ -1,5 +1,3 @@
|
|
1
|
-
require 'rubygems'
|
2
|
-
require 'activesupport'
|
3
1
|
|
4
2
|
class String
|
5
3
|
# pluralizes a string and turns it into a symbol
|
@@ -8,4 +6,17 @@ class String
|
|
8
6
|
def pluralize_to_sym
|
9
7
|
self.pluralize.to_sym
|
10
8
|
end
|
9
|
+
|
10
|
+
# takes human readable words and
|
11
|
+
# turns it into ruby variable format
|
12
|
+
# dash and spaces to underscore
|
13
|
+
# and lowercases
|
14
|
+
def variablize
|
15
|
+
self.squeeze!(' ')
|
16
|
+
self.gsub!(/\s+/,'_')
|
17
|
+
self.gsub!('-', '_')
|
18
|
+
self.squeeze!('_')
|
19
|
+
self.downcase!
|
20
|
+
self
|
21
|
+
end
|
11
22
|
end
|
data/lib/taza.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require 'active_support/all'
|
2
|
+
require 'rspec'
|
1
3
|
require 'taza/page'
|
2
4
|
require 'taza/site'
|
3
5
|
require 'taza/browser'
|
@@ -9,6 +11,7 @@ require 'extensions/object'
|
|
9
11
|
require 'extensions/string'
|
10
12
|
require 'extensions/hash'
|
11
13
|
require 'extensions/array'
|
14
|
+
require 'formatters/failing_examples_formatter'
|
12
15
|
|
13
16
|
module ForwardInitialization
|
14
17
|
module ClassMethods
|
@@ -21,4 +24,3 @@ module ForwardInitialization
|
|
21
24
|
klass.extend(ClassMethods)
|
22
25
|
end
|
23
26
|
end
|
24
|
-
|
data/lib/taza.rb.backup
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'taza/page'
|
2
|
+
require 'taza/site'
|
3
|
+
require 'taza/browser'
|
4
|
+
require 'taza/settings'
|
5
|
+
require 'taza/flow'
|
6
|
+
require 'taza/entity'
|
7
|
+
require 'taza/fixtures'
|
8
|
+
require 'extensions/object'
|
9
|
+
require 'extensions/string'
|
10
|
+
require 'extensions/hash'
|
11
|
+
require 'extensions/array'
|
12
|
+
|
13
|
+
module ForwardInitialization
|
14
|
+
module ClassMethods
|
15
|
+
def new(*args,&block)
|
16
|
+
const_get("#{name.split("::").last}").new(*args,&block)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def self.included(klass)
|
21
|
+
klass.extend(ClassMethods)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
data/lib/taza/browser.rb
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
module Taza
|
2
2
|
class Browser
|
3
|
-
|
3
|
+
|
4
4
|
# Create a browser instance depending on configuration. Configuration should be read in via Taza::Settings.config.
|
5
|
-
#
|
5
|
+
#
|
6
6
|
# Example:
|
7
7
|
# browser = Taza::Browser.create(Taza::Settings.config)
|
8
8
|
#
|
9
9
|
def self.create(params={})
|
10
10
|
self.send("create_#{params[:driver]}".to_sym,params)
|
11
11
|
end
|
12
|
-
|
12
|
+
|
13
13
|
def self.browser_class(params)
|
14
14
|
self.send("#{params[:driver]}_#{params[:browser]}".to_sym)
|
15
15
|
end
|
16
16
|
|
17
|
-
private
|
17
|
+
private
|
18
18
|
|
19
19
|
def self.create_watir(params)
|
20
20
|
method = "watir_#{params[:browser]}"
|
@@ -23,6 +23,11 @@ module Taza
|
|
23
23
|
watir
|
24
24
|
end
|
25
25
|
|
26
|
+
def self.create_watir_webdriver(params)
|
27
|
+
require 'watir-webdriver'
|
28
|
+
Watir::Browser.new(params[:browser])
|
29
|
+
end
|
30
|
+
|
26
31
|
def self.create_selenium(params)
|
27
32
|
require 'selenium'
|
28
33
|
Selenium::SeleniumDriver.new(params[:server_ip],params[:server_port],'*' + params[:browser].to_s,params[:timeout])
|
@@ -46,7 +51,7 @@ module Taza
|
|
46
51
|
browser || Watir::IE.new
|
47
52
|
end
|
48
53
|
end
|
49
|
-
|
54
|
+
|
50
55
|
# We don't know how to create the browser you asked for
|
51
56
|
class BrowserUnsupportedError < StandardError; end
|
52
57
|
end
|
data/lib/taza/entity.rb
CHANGED
@@ -7,7 +7,7 @@ module Taza
|
|
7
7
|
@fixture = fixture
|
8
8
|
define_methods_for_hash_keys
|
9
9
|
end
|
10
|
-
|
10
|
+
|
11
11
|
#This method converts hash keys into methods onto the entity
|
12
12
|
def define_methods_for_hash_keys
|
13
13
|
@hash.keys.each do |key|
|
@@ -30,7 +30,7 @@ module Taza
|
|
30
30
|
end
|
31
31
|
end
|
32
32
|
alias :[] :get_value_for_entry
|
33
|
-
|
33
|
+
|
34
34
|
def create_entity_if_value_is_hash(key)
|
35
35
|
if (@fixture.nil? && @hash[key].is_a?(Hash))
|
36
36
|
Entity.new(@hash[key], nil)
|
data/lib/taza/fixtures.rb
CHANGED
@@ -1,11 +1,12 @@
|
|
1
1
|
require 'taza/fixture'
|
2
2
|
|
3
3
|
module Taza
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
4
|
+
def self.load_fixtures
|
5
|
+
dirs = Dir.glob(File.join(Fixture.base_path,'*/'))
|
6
|
+
dirs.unshift Fixture.base_path
|
7
|
+
dirs.each do |dir|
|
8
|
+
mod = dir.sub(Fixture.base_path,File.join(File.basename(Fixture.base_path),'')).camelize.sub(/::$/,'')
|
9
|
+
self.class_eval <<-EOS
|
9
10
|
module #{mod}
|
10
11
|
def self.included(other_module)
|
11
12
|
fixture = Fixture.new
|
@@ -20,5 +21,8 @@ module Taza
|
|
20
21
|
end
|
21
22
|
end
|
22
23
|
EOS
|
24
|
+
end
|
23
25
|
end
|
26
|
+
|
27
|
+
self.load_fixtures
|
24
28
|
end
|
data/lib/taza/options.rb
CHANGED
File without changes
|
data/lib/taza/settings.rb
CHANGED
data/lib/taza/site.rb
CHANGED
data/lib/taza/tasks.rb
CHANGED
@@ -1,11 +1,6 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'rake'
|
3
|
-
require '
|
4
|
-
require 'spec/rake/spectask'
|
5
|
-
|
6
|
-
def tags
|
7
|
-
ENV['TAGS']
|
8
|
-
end
|
3
|
+
require 'rspec/core/rake_task'
|
9
4
|
|
10
5
|
module Taza
|
11
6
|
module Rake
|
@@ -18,9 +13,9 @@ module Taza
|
|
18
13
|
end
|
19
14
|
|
20
15
|
def define_spec_task(name,glob_path)
|
21
|
-
|
22
|
-
t.
|
23
|
-
t.
|
16
|
+
RSpec::Core::RakeTask.new name do |t|
|
17
|
+
t.pattern = Dir.glob(glob_path)
|
18
|
+
t.rspec_opts = spec_opts
|
24
19
|
end
|
25
20
|
end
|
26
21
|
|
data/lib/taza/version.rb
ADDED