rutema 0.6.1 → 0.6.2

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/History.txt CHANGED
@@ -1,3 +1,6 @@
1
+ == 0.6.2 / 2008-03-12
2
+ * Parsers derived from Rutema::SpecificationParser now receive the system configuration so that conventions like tools, paths and context can be used in element_ methods (this functionality fell through the cracks with the change in parser implementation)
3
+ * rutemaweb now has proper commandline help and connects properly to the database
1
4
  == 0.6.1 / 2008-02-28
2
5
  * ExtensibleXMLParser made more tolerant (no exceptions when an element cannot be handled)
3
6
  * Bug: Typo in the class name used in the exceptions fixed
data/Manifest.txt CHANGED
@@ -13,6 +13,7 @@ lib/rutema/reporter.rb
13
13
  lib/rutema/reporter_ar.rb
14
14
  lib/rutema/historian.rb
15
15
  lib/rutema/model.rb
16
+ lib/rutemaweb/main.rb
16
17
  lib/rutemaweb/ramaze_controller.rb
17
18
  lib/rutemaweb/public/bg_menu.gif
18
19
  lib/rutemaweb/public/bg_submenu.gif
data/bin/rutemaweb CHANGED
@@ -1,9 +1,9 @@
1
1
  # Copyright (c) 2007 Vassilis Rizopoulos. All rights reserved.
2
2
  begin
3
- require 'rutemaweb/ramaze_controller'
3
+ require 'rutemaweb/main'
4
4
  rescue LoadError
5
5
  require 'rubygems'
6
- require 'rutemaweb/ramaze_controller'
6
+ require 'rutemaweb/main'
7
7
  end
8
8
 
9
9
  start_ramaze
data/lib/rutema/system.rb CHANGED
@@ -16,7 +16,7 @@ module Rutema
16
16
  module Version
17
17
  MAJOR=0
18
18
  MINOR=6
19
- TINY=1
19
+ TINY=2
20
20
  STRING=[ MAJOR, MINOR, TINY ].join( "." )
21
21
  end
22
22
  #Is raised when an error is found in a specification
@@ -25,6 +25,14 @@ module Rutema
25
25
 
26
26
  #Base class that bombs out when used....
27
27
  class SpecificationParser
28
+ attr_reader :configuration
29
+ def initialize params
30
+ @logger=params[:logger]
31
+ @logger||=Patir.setup_logger
32
+ @configuration=params[:configuration]
33
+ @logger.warn("No system configuration provided to the parser") unless @configuration
34
+ end
35
+
28
36
  def parse_specification param
29
37
  raise ParserError,"not implemented. You should derive a parser implementation from SpecificationParser!"
30
38
  end
@@ -36,10 +44,6 @@ module Rutema
36
44
  ELEM_TITLE="specification/title"
37
45
  ELEM_SCENARIO="specification/scenario"
38
46
  ELEM_REQ="requirement"
39
- def initialize params
40
- @logger=params[:logger]
41
- @logger||=Patir.setup_logger
42
- end
43
47
  #Parses __param__ and returns the Rutema::TestSpecification instance
44
48
  #
45
49
  #param can be the filename of the specification or the contents of that file.
@@ -297,6 +301,8 @@ module Rutema
297
301
  if definition[:class]
298
302
  #add the logger to the definition
299
303
  definition[:logger]=@logger
304
+ #add the configuration to the definition
305
+ definition[:configuration]=@configuration
300
306
  klass=definition[:class]
301
307
  return klass.new(definition)
302
308
  end
@@ -0,0 +1,52 @@
1
+ $:.unshift File.join(File.dirname(__FILE__),"..")
2
+ require 'rutema/system'
3
+ require 'rubygems'
4
+ require 'patir/base'
5
+
6
+ def start_ramaze
7
+ logger=Patir.setup_logger
8
+ db_file=parse_command_line(ARGV)
9
+ db_file=File.expand_path(db_file)
10
+ connect(db_file,logger)
11
+ require 'rutemaweb/ramaze_controller'
12
+ Dir.chdir(File.dirname(__FILE__)) do
13
+ Ramaze.start :force=>true#,:adapter=>:thin
14
+ end
15
+ end
16
+ def connect db_file,logger
17
+ if db_file
18
+ if ActiveRecord::Base.connected?
19
+ logger.info("Using cached database connection")
20
+ else
21
+ if File.exist?(db_file)
22
+ logger.info("Connecting with database '#{db_file}'")
23
+ ActiveRecord::Base.establish_connection(:adapter=>"sqlite3", :database=>db_file )
24
+ else
25
+ logger.fatal("Could not find #{db_file}")
26
+ exit 1
27
+ end
28
+ end
29
+ else
30
+ logger.fatal("No database source defined in the configuration")
31
+ exit 1
32
+ end
33
+ end
34
+
35
+ def parse_command_line args
36
+ args.options do |opt|
37
+ opt.on("Usage:")
38
+ opt.on("rutemaweb [options] database_file")
39
+ opt.on("Options:")
40
+ opt.on("--debug", "-d","Turns on debug messages") { $DEBUG=true }
41
+ opt.on("-v", "--version","Displays the version") { $stdout.puts("v#{Version::STRING}");exit 0 }
42
+ opt.on("--help", "-h", "-?", "This text") { $stdout.puts opt; exit 0 }
43
+ opt.parse!
44
+ #and now the rest
45
+ if args.empty?
46
+ $stdout.puts opt
47
+ exit 0
48
+ else
49
+ return args.shift
50
+ end
51
+ end
52
+ end
@@ -4,6 +4,7 @@ require 'rutema/system'
4
4
  require 'rubygems'
5
5
  require 'ramaze'
6
6
 
7
+
7
8
  module Rutema
8
9
  module UI
9
10
  class MainController < Ramaze::Controller
@@ -147,8 +148,3 @@ module Rutema
147
148
  end
148
149
  end
149
150
  end
150
- def start_ramaze
151
- Dir.chdir(File.dirname(__FILE__)) do
152
- Ramaze.start :force=>true#,:adapter=>:thin
153
- end
154
- end
data/test/test_system.rb CHANGED
@@ -50,6 +50,7 @@ EOT
50
50
  EOT
51
51
  def test_parse_specification
52
52
  parser=Rutema::ExtensibleXMLParser.new({})
53
+ assert_nil(parser.configuration)
53
54
  assert_nothing_raised() { specification=parser.parse_specification(SAMPLE_SPEC) }
54
55
  end
55
56
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rutema
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vassilis Rizopoulos
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2008-02-28 00:00:00 +01:00
12
+ date: 2008-03-12 00:00:00 +01:00
13
13
  default_executable: rutemax
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -91,7 +91,7 @@ dependencies:
91
91
  requirements:
92
92
  - - ">="
93
93
  - !ruby/object:Gem::Version
94
- version: 1.5.0
94
+ version: 1.5.1
95
95
  version:
96
96
  description: "== DESCRIPTION: rutema is a test execution too with a twist. It allows you to combine test tools while it takes care of logging, reporting, archiving of results and formalizes execution of automated and manual tests. It's purpose is to provide a set of classes and a framework that will allow testers to specify and execute tests in heterogeneous testing environments. For more information look at http://patir.rubyforge.org/rutema == FEATURES/PROBLEMS: * Unified test execution environment for automated and manual tests * Extensible reports and notifications in various formats (email, rss, pdf, html etc.) * Web frontend and command line report generation tools for browsing the test results database * Comprehensive history of test execution * A well defined way to create a project specific test specification format == SYNOPSIS: See http://patir.rubyforge.org/rutema/distro_test.html for an introductory example. == REQUIREMENTS: * patir (http://patir.rubyforge.org) * mailfactory (http://rubyforge.org/projects/mailfactory/) * activerecord (http://ar.rubyonrails.com/) * sqlite3 (http://rubyforge.org/projects/sqlite-ruby/) * ramaze (http://www.ramaze.net/) * ruport (http://rubyreports.org/) * acts_as_reportable == INSTALL: * gem install rutema"
97
97
  email: riva@braveworld.net
@@ -122,6 +122,7 @@ files:
122
122
  - lib/rutema/reporter_ar.rb
123
123
  - lib/rutema/historian.rb
124
124
  - lib/rutema/model.rb
125
+ - lib/rutemaweb/main.rb
125
126
  - lib/rutemaweb/ramaze_controller.rb
126
127
  - lib/rutemaweb/public/bg_menu.gif
127
128
  - lib/rutemaweb/public/bg_submenu.gif