fuci 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c51a2d0ad456cb773cc634a1e33cebcbd1c03af5
4
- data.tar.gz: 80ad9fb11b2b88c86f3de73f27b57baa8e29c216
3
+ metadata.gz: 34faa150063416bf1ca042b6a3c741bc9d8ea46c
4
+ data.tar.gz: 1487f25d0712faf4af545dabf7798bb0474eb72b
5
5
  SHA512:
6
- metadata.gz: 1e17548470e39a72f4e81fe41f8fcb5f96db0446f5b044f8b30d0eb53021d52a0fc33d4816092a13442dac5be26c6dc81da7f276088bda1e5ecc71c507c2c304
7
- data.tar.gz: 1fe119206c7956c8f0f7e965bd54aa0377b38ad1c98349e304d9a52aa9d68114a6daa7b51dc66e30256b66fbd9a687ead75f7a9c6a3dfd700f821995e33ea5d4
6
+ metadata.gz: e10f99678214657933a6bf26c575c6a12f8c7958a59dc7c7632efc90d081c6527ae63f96e5345425e64abffc54efdc2f3c0aa0f79e48bb5d432a374550eb8642
7
+ data.tar.gz: 49aa7e85bd20e66a1cbc9e7a2946f844d4601186b6b00c5355cfb7628d178a2ee3568ae0edca1fce0a4ebd44a10ca71f18fc6c620729aa3564c7ba8f98a44bde
@@ -0,0 +1,5 @@
1
+ ### version 0.1.1 *July 30, 2013*
2
+ * Logs that no failure was detected by a plugin.
3
+
4
+ ### version 0.1.0 *July 29, 2013*
5
+ * Initial release
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # Fuci
2
- [![Build Status](https://travis-ci.org/davejachimiak/fuci.png?branch=dj-initial_functionality)](https://travis-ci.org/davejachimiak/fuci)
2
+ [![Build Status](https://travis-ci.org/davejachimiak/fuci.png?branch=master)](https://travis-ci.org/davejachimiak/fuci)
3
3
 
4
- Run failed tests from your last build on the command line.
4
+ A base gem providing the general case for running CI failures locally.
5
5
 
6
6
  ## Installation
7
7
 
@@ -9,10 +9,55 @@ Add this line to your fuci extension's Gemspec:
9
9
 
10
10
  .add_dependency 'fuci', '~> 0.1'
11
11
 
12
+ ## Known server extensions
13
+ * [Fuci::Travis](https://github.com/davejachimiak/fuci-travis)
14
+
12
15
  ## Usage
13
- ### Server extensions
14
- Coming soon...
15
- ### Tester extensions
16
+ ### Creating server extensions
17
+ #### Configuring Fuci base with the server
18
+ Somewhere in the required code of the server extension, the server must
19
+ be set like so:
20
+ ```ruby
21
+ Fuci.configure do |fu|
22
+ fu.server = Fuci::MyCiAgent::ServerClass
23
+ end
24
+ ```
25
+ or
26
+ ```ruby
27
+ module Fuci
28
+ configure do |fu|
29
+ fu.server = Fuci::MyCiAgent::ServerClass
30
+ end
31
+
32
+ module MyCiAgent
33
+ ...
34
+ ...
35
+ end
36
+ end
37
+ ```
38
+
39
+ The ServerClass in this example must be an initializable constant whose
40
+ instance implements the server interface.
41
+
42
+ #### The server interface
43
+ The `Fuci::Server` interface class that tells what the runner
44
+ expects of server extensions. As of this version, it expects two
45
+ methods: `#build_status` and `#fetch_log`. See that file for more
46
+ details on what they should return.
47
+
48
+ #### The binstub
49
+ Server extensions should ship with their own binstub. `fuci` is
50
+ preffered. It's short and easy to type. To avoid possible conflicts
51
+ between local server extensions, prefer that users execute
52
+ `bundle binstubs <server-extension>`.
53
+
54
+ Fuci binstubs should do the following:
55
+ * Require the extension
56
+ * Load a configuration file, if necessary
57
+ * Handle command-line arguments
58
+ * Call `Fuci.run`
59
+
60
+ ### Creating tester extensions
16
61
  Coming soon...
17
62
  ## Contributing
18
63
 
@@ -38,7 +38,12 @@ module Fuci
38
38
  self.detected_tester = testers.detect do |tester|
39
39
  tester.indicates_failure? log
40
40
  end
41
- puts "Failure detected: #{detected_tester.class.name.split('::').last}"
41
+
42
+ if detected_tester
43
+ puts "Failure detected: #{detected_tester.class.name.split('::').last}"
44
+ else
45
+ puts_with_exit 'No failure was detected by any tester plugins.'
46
+ end
42
47
  end
43
48
 
44
49
  def run_failures
@@ -10,7 +10,7 @@ module Fuci
10
10
  raise NotImplementedError
11
11
  end
12
12
 
13
- # must return a string with characters
13
+ # must return a log as as string string with characters
14
14
  # denoting ascii color removed
15
15
  def fetch_log
16
16
  raise NotImplementedError
@@ -1,3 +1,3 @@
1
1
  module Fuci
2
- VERSION = "0.1.0"
2
+ VERSION = '0.1.1'
3
3
  end
@@ -52,19 +52,31 @@ describe Fuci::Runner do
52
52
  end
53
53
 
54
54
  describe '.detect_tester_failure' do
55
- it 'detects the first tester failure in the log' do
56
- rspec, konacha, cucumber = mock, mock, mock
57
- @runner.stubs(:log).returns log = mock
58
- [rspec, cucumber].each { |t| t.stubs :indicates_failure? }
59
- konacha.stubs(:indicates_failure?).with(log).returns true
60
- konacha.class.stubs(:name).returns 'Fuci::Konacha'
61
- testers = [rspec, konacha, cucumber]
62
- @runner.expects(:puts).with 'Failure detected: Konacha'
63
- @runner.stubs(:testers).returns testers
55
+ describe 'a failure is detected by a tester plugin' do
56
+ it 'detects the first tester failure in the log' do
57
+ rspec, konacha, cucumber = mock, mock, mock
58
+ @runner.stubs(:log).returns log = mock
59
+ [rspec, cucumber].each { |t| t.stubs :indicates_failure? }
60
+ konacha.stubs(:indicates_failure?).with(log).returns true
61
+ konacha.class.stubs(:name).returns 'Fuci::Konacha'
62
+ testers = [rspec, konacha, cucumber]
63
+ @runner.expects(:puts).with 'Failure detected: Konacha'
64
+ @runner.stubs(:testers).returns testers
65
+
66
+ @runner.send :detect_tester_failure
67
+
68
+ expect(@runner.send :detected_tester ).to_equal konacha
69
+ end
70
+ end
64
71
 
65
- @runner.send :detect_tester_failure
72
+ describe 'if there was no detected tester' do
73
+ it 'logs that no failure was detected by any tester plugin' do
74
+ @runner.stubs(:testers).returns []
75
+ @runner.expects(:puts_with_exit).
76
+ with 'No failure was detected by any tester plugins.'
66
77
 
67
- expect(@runner.send :detected_tester ).to_equal konacha
78
+ @runner.send :detect_tester_failure
79
+ end
68
80
  end
69
81
  end
70
82
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fuci
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dave Jachimiak
@@ -75,6 +75,7 @@ extra_rdoc_files: []
75
75
  files:
76
76
  - .gitignore
77
77
  - .travis.yml
78
+ - CHANGELOG.md
78
79
  - Gemfile
79
80
  - LICENSE.txt
80
81
  - README.md