ruby_bugzilla 0.5.1 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- data/data/cookies_file +1 -0
- data/lib/ruby_bugzilla.rb +16 -18
- data/lib/ruby_bugzilla/version.rb +1 -1
- data/spec/ruby_bugzilla_spec.rb +3 -16
- metadata +9 -2
data/data/cookies_file
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
spec test fake cookies_file
|
data/lib/ruby_bugzilla.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
|
+
require 'fileutils'
|
1
2
|
require 'linux_admin'
|
3
|
+
require 'tempfile'
|
2
4
|
require "xmlrpc/client"
|
3
5
|
|
6
|
+
|
4
7
|
class RubyBugzilla
|
5
8
|
CLONE_FIELDS = [:assigned_to, :cc, :cf_devel_whiteboard, :cf_internal_whiteboard, :component,
|
6
9
|
:groups, :keywords, :op_sys, :platform, :priority, :product, :qa_contact, :severity,
|
@@ -12,14 +15,6 @@ class RubyBugzilla
|
|
12
15
|
File.exists?(CMD)
|
13
16
|
end
|
14
17
|
|
15
|
-
def self.logged_in?
|
16
|
-
File.exists?(COOKIES_FILE)
|
17
|
-
end
|
18
|
-
|
19
|
-
def self.clear_login!
|
20
|
-
File.delete(COOKIES_FILE) if File.exists?(COOKIES_FILE)
|
21
|
-
end
|
22
|
-
|
23
18
|
attr_accessor :bugzilla_uri, :username, :password, :last_command, :xmlrpc
|
24
19
|
attr_reader :bugzilla_request_uri, :bugzilla_request_hostname
|
25
20
|
|
@@ -38,6 +33,8 @@ class RubyBugzilla
|
|
38
33
|
self.password = password
|
39
34
|
self.xmlrpc = ::XMLRPC::Client.new(bugzilla_request_hostname, '/xmlrpc.cgi', 443, nil,
|
40
35
|
nil, username, password, true, 60)
|
36
|
+
|
37
|
+
login
|
41
38
|
end
|
42
39
|
|
43
40
|
def inspect
|
@@ -48,20 +45,21 @@ class RubyBugzilla
|
|
48
45
|
self.class.installed?
|
49
46
|
end
|
50
47
|
|
51
|
-
def logged_in?
|
52
|
-
self.class.logged_in?
|
53
|
-
end
|
54
|
-
|
55
48
|
def clear_login!
|
56
|
-
|
57
|
-
end
|
49
|
+
cookies_file_entry = "HttpOnly_.#{bugzilla_request_hostname}"
|
58
50
|
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
51
|
+
if File.exists?(COOKIES_FILE)
|
52
|
+
Tempfile.open('ruby_bugzilla') do |out_file|
|
53
|
+
File.read(COOKIES_FILE).each_line do |line|
|
54
|
+
out_file.puts(line) unless line.include?(cookies_file_entry)
|
55
|
+
end
|
56
|
+
out_file.close()
|
57
|
+
FileUtils.mv(out_file.path, COOKIES_FILE)
|
58
|
+
end
|
63
59
|
end
|
60
|
+
end
|
64
61
|
|
62
|
+
def login
|
65
63
|
params = {}
|
66
64
|
params["--debug"] = nil
|
67
65
|
params["login"] = [username, password]
|
data/spec/ruby_bugzilla_spec.rb
CHANGED
@@ -7,18 +7,8 @@ describe RubyBugzilla do
|
|
7
7
|
# Assume most tests have bugzilla installed and logged in by faking with
|
8
8
|
# valid files
|
9
9
|
stub_const("RubyBugzilla::CMD", "/bin/echo")
|
10
|
-
stub_const("RubyBugzilla::COOKIES_FILE", "/
|
11
|
-
end
|
12
|
-
|
13
|
-
context ".logged_in?" do
|
14
|
-
it "with an existing bugzilla cookie" do
|
15
|
-
RubyBugzilla.logged_in?.should be_true
|
16
|
-
end
|
10
|
+
stub_const("RubyBugzilla::COOKIES_FILE", File.expand_path("data/cookies_file", File.dirname(__FILE__)))
|
17
11
|
|
18
|
-
it "with no bugzilla cookie" do
|
19
|
-
stub_const("RubyBugzilla::COOKIES_FILE", "/This/file/does/not/exist")
|
20
|
-
RubyBugzilla.logged_in?.should be_false
|
21
|
-
end
|
22
12
|
end
|
23
13
|
|
24
14
|
context "#new" do
|
@@ -42,16 +32,13 @@ describe RubyBugzilla do
|
|
42
32
|
|
43
33
|
context "#login" do
|
44
34
|
it "when already logged in" do
|
45
|
-
|
46
|
-
|
47
|
-
bz.last_command.should be_nil
|
48
|
-
output.should include("Already Logged In")
|
35
|
+
bz.login
|
36
|
+
bz.last_command.should include("login")
|
49
37
|
end
|
50
38
|
|
51
39
|
it "when not already logged in" do
|
52
40
|
stub_const("RubyBugzilla::COOKIES_FILE", "/This/file/does/not/exist")
|
53
41
|
bz.login
|
54
|
-
|
55
42
|
bz.last_command.should include("login")
|
56
43
|
end
|
57
44
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ruby_bugzilla
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.5.
|
4
|
+
version: 0.5.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2014-01-
|
13
|
+
date: 2014-01-17 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: bundler
|
@@ -107,6 +107,7 @@ files:
|
|
107
107
|
- LICENSE.txt
|
108
108
|
- README.md
|
109
109
|
- Rakefile
|
110
|
+
- data/cookies_file
|
110
111
|
- lib/ruby_bugzilla.rb
|
111
112
|
- lib/ruby_bugzilla/version.rb
|
112
113
|
- ruby_bugzilla.gemspec
|
@@ -125,12 +126,18 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
125
126
|
- - ! '>='
|
126
127
|
- !ruby/object:Gem::Version
|
127
128
|
version: '0'
|
129
|
+
segments:
|
130
|
+
- 0
|
131
|
+
hash: 1898081452312934278
|
128
132
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
129
133
|
none: false
|
130
134
|
requirements:
|
131
135
|
- - ! '>='
|
132
136
|
- !ruby/object:Gem::Version
|
133
137
|
version: '0'
|
138
|
+
segments:
|
139
|
+
- 0
|
140
|
+
hash: 1898081452312934278
|
134
141
|
requirements: []
|
135
142
|
rubyforge_project:
|
136
143
|
rubygems_version: 1.8.25
|