rlaunchpadlib 0.0.1

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.
Files changed (39) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +22 -0
  3. data/.rspec +3 -0
  4. data/.travis.yml +4 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE.txt +22 -0
  7. data/README.md +44 -0
  8. data/Rakefile +6 -0
  9. data/lib/rlaunchpadlib.rb +9 -0
  10. data/lib/rlaunchpadlib/client.rb +26 -0
  11. data/lib/rlaunchpadlib/person.rb +96 -0
  12. data/lib/rlaunchpadlib/project.rb +81 -0
  13. data/lib/rlaunchpadlib/project_group.rb +43 -0
  14. data/lib/rlaunchpadlib/version.rb +3 -0
  15. data/rlaunchpadlib.gemspec +28 -0
  16. data/spec/cassettes/client_get.yml +376 -0
  17. data/spec/cassettes/person.yml +80 -0
  18. data/spec/cassettes/person_archivesubscriptions.yml +52 -0
  19. data/spec/cassettes/person_branches.yml +822 -0
  20. data/spec/cassettes/person_bug_subscriber_packages.yml +48 -0
  21. data/spec/cassettes/person_bugs.yml +1088 -0
  22. data/spec/cassettes/person_merge_proposals.yml +101 -0
  23. data/spec/cassettes/person_requested_reviews.yml +180 -0
  24. data/spec/cassettes/project.yml +119 -0
  25. data/spec/cassettes/project_branches.yml +1931 -0
  26. data/spec/cassettes/project_bugs.yml +1027 -0
  27. data/spec/cassettes/project_group.yml +71 -0
  28. data/spec/cassettes/project_group_branches.yml +1985 -0
  29. data/spec/cassettes/project_group_bugs.yml +1068 -0
  30. data/spec/cassettes/project_group_merges.yml +317 -0
  31. data/spec/cassettes/project_merge_proposals.yml +1905 -0
  32. data/spec/cassettes/project_subscriptions.yml +48 -0
  33. data/spec/cassettes/project_timeline.yml +164 -0
  34. data/spec/rlaunchpadlib/lib/client_spec.rb +28 -0
  35. data/spec/rlaunchpadlib/lib/person_spec.rb +147 -0
  36. data/spec/rlaunchpadlib/lib/project_group_spec.rb +93 -0
  37. data/spec/rlaunchpadlib/lib/project_spec.rb +146 -0
  38. data/spec/spec_helper.rb +31 -0
  39. metadata +202 -0
@@ -0,0 +1,48 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.launchpad.net/1.0/bzr/?ws.op=getSubscriptions
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Date:
16
+ - Sun, 18 May 2014 23:49:05 GMT
17
+ Server:
18
+ - zope.server.http (HTTP)
19
+ X-Powered-By:
20
+ - Zope (www.zope.org), Python (www.python.org)
21
+ Content-Length:
22
+ - '45'
23
+ X-Xss-Protection:
24
+ - 1; mode=block
25
+ X-Content-Type-Options:
26
+ - nosniff
27
+ Strict-Transport-Security:
28
+ - max-age=15552000
29
+ Vary:
30
+ - Accept,Accept-Encoding
31
+ X-Frame-Options:
32
+ - SAMEORIGIN
33
+ X-Lazr-Notifications:
34
+ - "[]"
35
+ Content-Type:
36
+ - application/json
37
+ X-Cache:
38
+ - MISS from nutmeg.canonical.com
39
+ X-Cache-Lookup:
40
+ - MISS from nutmeg.canonical.com:3128
41
+ Via:
42
+ - 1.0 nutmeg.canonical.com:3128 (squid/2.7.STABLE7)
43
+ body:
44
+ encoding: UTF-8
45
+ string: '{"total_size": 24, "start": 0, "entries": []}'
46
+ http_version:
47
+ recorded_at: Sun, 18 May 2014 23:49:09 GMT
48
+ recorded_with: VCR 2.9.0
@@ -0,0 +1,164 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.launchpad.net/1.0/bzr/?ws.op=get_timeline
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers: {}
10
+ response:
11
+ status:
12
+ code: 200
13
+ message: OK
14
+ headers:
15
+ Date:
16
+ - Sun, 18 May 2014 23:49:06 GMT
17
+ Server:
18
+ - zope.server.http (HTTP)
19
+ X-Powered-By:
20
+ - Zope (www.zope.org), Python (www.python.org)
21
+ Content-Length:
22
+ - '9687'
23
+ X-Xss-Protection:
24
+ - 1; mode=block
25
+ X-Content-Type-Options:
26
+ - nosniff
27
+ Strict-Transport-Security:
28
+ - max-age=15552000
29
+ Vary:
30
+ - Accept,Accept-Encoding
31
+ X-Frame-Options:
32
+ - SAMEORIGIN
33
+ X-Lazr-Notifications:
34
+ - "[]"
35
+ Content-Type:
36
+ - application/json
37
+ X-Cache:
38
+ - MISS from banana.canonical.com
39
+ X-Cache-Lookup:
40
+ - MISS from banana.canonical.com:3128
41
+ Via:
42
+ - 1.0 banana.canonical.com:3128 (squid/2.7.STABLE7)
43
+ body:
44
+ encoding: UTF-8
45
+ string: '{"total_size": 8, "start": 0, "entries": [{"status": "Active Development",
46
+ "name": "trunk", "landmarks": [], "web_link": "https://launchpad.net/bzr/trunk",
47
+ "project_link": "https://api.launchpad.net/1.0/bzr", "uri": "/bzr/trunk",
48
+ "http_etag": "\"da39a3ee5e6b4b0d3255bfef95601890afd80709-b539276efa6a714d7d7e040025959b4862aa1c1f\"",
49
+ "self_link": "https://api.launchpad.net/1.0/bzr/trunk", "resource_type_link":
50
+ "https://api.launchpad.net/1.0/#timeline_project_series", "is_development_focus":
51
+ true}, {"status": "Active Development", "name": "2.7", "landmarks": [{"date":
52
+ null, "type": "milestone", "uri": "/bzr/+milestone/2.7b1", "code_name": "",
53
+ "name": "2.7b1"}], "web_link": "https://launchpad.net/bzr/2.7", "project_link":
54
+ "https://api.launchpad.net/1.0/bzr", "uri": "/bzr/2.7", "http_etag": "\"da39a3ee5e6b4b0d3255bfef95601890afd80709-9ecbabafe8e828ba314b78fa690010d234c0837a\"",
55
+ "self_link": "https://api.launchpad.net/1.0/bzr/2.7", "resource_type_link":
56
+ "https://api.launchpad.net/1.0/#timeline_project_series", "is_development_focus":
57
+ false}, {"status": "Current Stable Release", "name": "2.6", "landmarks": [{"date":
58
+ null, "type": "milestone", "uri": "/bzr/+milestone/2.6.1", "code_name": "",
59
+ "name": "2.6.1"}, {"date": "2013-07-27", "type": "release", "uri": "/bzr/2.6/2.6.0",
60
+ "code_name": null, "name": "2.6.0"}, {"date": "2012-07-10", "type": "release",
61
+ "uri": "/bzr/2.6/2.6b2", "code_name": null, "name": "2.6b2"}, {"date": "2012-03-15",
62
+ "type": "release", "uri": "/bzr/2.6/2.6b1", "code_name": null, "name": "2.6b1"}],
63
+ "web_link": "https://launchpad.net/bzr/2.6", "project_link": "https://api.launchpad.net/1.0/bzr",
64
+ "uri": "/bzr/2.6", "http_etag": "\"da39a3ee5e6b4b0d3255bfef95601890afd80709-98d0078a7ae609a00c3af19236b2e9e8f525aba6\"",
65
+ "self_link": "https://api.launchpad.net/1.0/bzr/2.6", "resource_type_link":
66
+ "https://api.launchpad.net/1.0/#timeline_project_series", "is_development_focus":
67
+ false}, {"status": "Pre-release Freeze", "name": "2.5", "landmarks": [{"date":
68
+ null, "type": "milestone", "uri": "/bzr/+milestone/2.5.2", "code_name": "",
69
+ "name": "2.5.2"}, {"date": "2012-05-22", "type": "release", "uri": "/bzr/2.5/2.5.1",
70
+ "code_name": null, "name": "2.5.1"}, {"date": "2012-02-24", "type": "release",
71
+ "uri": "/bzr/2.5/2.5.0", "code_name": "Phillip", "name": "2.5.0"}, {"date":
72
+ "2012-02-03", "type": "release", "uri": "/bzr/2.5/2.5b6", "code_name": "",
73
+ "name": "2.5b6"}, {"date": "2012-01-16", "type": "release", "uri": "/bzr/2.5/2.5b5",
74
+ "code_name": null, "name": "2.5b5"}, {"date": "2011-12-08", "type": "release",
75
+ "uri": "/bzr/2.5/2.5b4", "code_name": null, "name": "2.5b4"}, {"date": "2011-11-10",
76
+ "type": "release", "uri": "/bzr/2.5/2.5b3", "code_name": null, "name": "2.5b3"},
77
+ {"date": "2011-10-06", "type": "release", "uri": "/bzr/2.5/2.5b2", "code_name":
78
+ null, "name": "2.5b2"}, {"date": "2011-09-15", "type": "release", "uri": "/bzr/2.5/2.5b1",
79
+ "code_name": null, "name": "2.5b1"}], "web_link": "https://launchpad.net/bzr/2.5",
80
+ "project_link": "https://api.launchpad.net/1.0/bzr", "uri": "/bzr/2.5", "http_etag":
81
+ "\"da39a3ee5e6b4b0d3255bfef95601890afd80709-1ddb86305d877e076c3250b5ab59834527877530\"",
82
+ "self_link": "https://api.launchpad.net/1.0/bzr/2.5", "resource_type_link":
83
+ "https://api.launchpad.net/1.0/#timeline_project_series", "is_development_focus":
84
+ false}, {"status": "Current Stable Release", "name": "2.4", "landmarks": [{"date":
85
+ null, "type": "milestone", "uri": "/bzr/+milestone/2.4.3", "code_name": null,
86
+ "name": "2.4.3"}, {"date": "2011-10-27", "type": "release", "uri": "/bzr/2.4/2.4.2",
87
+ "code_name": null, "name": "2.4.2"}, {"date": "2011-09-08", "type": "release",
88
+ "uri": "/bzr/2.4/2.4.1", "code_name": null, "name": "2.4.1"}, {"date": "2011-08-11",
89
+ "type": "release", "uri": "/bzr/2.4/2.4.0", "code_name": "Oronsay", "name":
90
+ "2.4.0"}, {"date": "2011-07-07", "type": "release", "uri": "/bzr/2.4/2.4b5",
91
+ "code_name": "", "name": "2.4b5"}, {"date": "2011-06-16", "type": "release",
92
+ "uri": "/bzr/2.4/2.4b4", "code_name": null, "name": "2.4b4"}, {"date": "2011-05-26",
93
+ "type": "release", "uri": "/bzr/2.4/2.4b3", "code_name": null, "name": "2.4b3"},
94
+ {"date": "2011-04-28", "type": "release", "uri": "/bzr/2.4/2.4b2", "code_name":
95
+ null, "name": "2.4b2"}, {"date": "2011-03-17", "type": "release", "uri": "/bzr/2.4/2.4b1",
96
+ "code_name": null, "name": "2.4b1"}], "web_link": "https://launchpad.net/bzr/2.4",
97
+ "project_link": "https://api.launchpad.net/1.0/bzr", "uri": "/bzr/2.4", "http_etag":
98
+ "\"da39a3ee5e6b4b0d3255bfef95601890afd80709-1c5ad0c5dbba93fa6251940f6687c16b8045108f\"",
99
+ "self_link": "https://api.launchpad.net/1.0/bzr/2.4", "resource_type_link":
100
+ "https://api.launchpad.net/1.0/#timeline_project_series", "is_development_focus":
101
+ false}, {"status": "Supported", "name": "2.3", "landmarks": [{"date": null,
102
+ "type": "milestone", "uri": "/bzr/+milestone/2.3.5", "code_name": null, "name":
103
+ "2.3.5"}, {"date": "2011-07-14", "type": "release", "uri": "/bzr/2.3/2.3.4",
104
+ "code_name": "One and counting", "name": "2.3.4"}, {"date": "2011-05-13",
105
+ "type": "release", "uri": "/bzr/2.3/2.3.3", "code_name": "", "name": "2.3.3"},
106
+ {"date": "2011-05-11", "type": "release", "uri": "/bzr/2.3/2.3.2", "code_name":
107
+ null, "name": "2.3.2"}, {"date": "2011-03-10", "type": "release", "uri": "/bzr/2.3/2.3.1",
108
+ "code_name": null, "name": "2.3.1"}, {"date": "2011-02-03", "type": "release",
109
+ "uri": "/bzr/2.3/2.3.0", "code_name": "Dallas", "name": "2.3.0"}, {"date":
110
+ "2011-01-13", "type": "release", "uri": "/bzr/2.3/2.3b5", "code_name": null,
111
+ "name": "2.3b5"}, {"date": "2010-12-02", "type": "release", "uri": "/bzr/2.3/2.3b4",
112
+ "code_name": null, "name": "2.3b4"}, {"date": "2010-11-05", "type": "release",
113
+ "uri": "/bzr/2.3/2.3b3", "code_name": null, "name": "2.3b3"}, {"date": "2010-10-08",
114
+ "type": "release", "uri": "/bzr/2.3/2.3b2", "code_name": null, "name": "2.3b2"},
115
+ {"date": "2010-09-19", "type": "release", "uri": "/bzr/2.3/2.3b1", "code_name":
116
+ null, "name": "2.3b1"}], "web_link": "https://launchpad.net/bzr/2.3", "project_link":
117
+ "https://api.launchpad.net/1.0/bzr", "uri": "/bzr/2.3", "http_etag": "\"da39a3ee5e6b4b0d3255bfef95601890afd80709-ca5ae70735694925783e67c0004970b16605310d\"",
118
+ "self_link": "https://api.launchpad.net/1.0/bzr/2.3", "resource_type_link":
119
+ "https://api.launchpad.net/1.0/#timeline_project_series", "is_development_focus":
120
+ false}, {"status": "Supported", "name": "2.2", "landmarks": [{"date": null,
121
+ "type": "milestone", "uri": "/bzr/+milestone/2.2.6", "code_name": null, "name":
122
+ "2.2.6"}, {"date": "2011-09-02", "type": "release", "uri": "/bzr/2.2/2.2.5",
123
+ "code_name": null, "name": "2.2.5"}, {"date": "2011-02-04", "type": "release",
124
+ "uri": "/bzr/2.2/2.2.4", "code_name": "", "name": "2.2.4"}, {"date": "2011-01-20",
125
+ "type": "release", "uri": "/bzr/2.2/2.2.3", "code_name": "", "name": "2.2.3"},
126
+ {"date": "2010-11-25", "type": "release", "uri": "/bzr/2.2/2.2.2", "code_name":
127
+ "", "name": "2.2.2"}, {"date": "2010-09-17", "type": "release", "uri": "/bzr/2.2/2.2.1",
128
+ "code_name": null, "name": "2.2.1"}, {"date": "2010-08-06", "type": "release",
129
+ "uri": "/bzr/2.2/2.2.0", "code_name": "La Hulpe", "name": "2.2.0"}, {"date":
130
+ "2010-07-09", "type": "release", "uri": "/bzr/2.2/2.2b4", "code_name": null,
131
+ "name": "2.2b4"}, {"date": "2010-05-27", "type": "release", "uri": "/bzr/2.2/2.2b3",
132
+ "code_name": null, "name": "2.2b3"}, {"date": "2010-04-15", "type": "release",
133
+ "uri": "/bzr/2.2/2.2b2", "code_name": null, "name": "2.2b2"}, {"date": "2010-04-01",
134
+ "type": "release", "uri": "/bzr/2.2/2.2b1", "code_name": null, "name": "2.2b1"}],
135
+ "web_link": "https://launchpad.net/bzr/2.2", "project_link": "https://api.launchpad.net/1.0/bzr",
136
+ "uri": "/bzr/2.2", "http_etag": "\"da39a3ee5e6b4b0d3255bfef95601890afd80709-ce9e5a2180eecc131de29b50f8e7d0a4b45918be\"",
137
+ "self_link": "https://api.launchpad.net/1.0/bzr/2.2", "resource_type_link":
138
+ "https://api.launchpad.net/1.0/#timeline_project_series", "is_development_focus":
139
+ false}, {"status": "Supported", "name": "2.1", "landmarks": [{"date": null,
140
+ "type": "milestone", "uri": "/bzr/+milestone/2.1.5", "code_name": null, "name":
141
+ "2.1.5"}, {"date": "2011-05-16", "type": "release", "uri": "/bzr/2.1/2.1.4",
142
+ "code_name": null, "name": "2.1.4"}, {"date": "2010-09-16", "type": "release",
143
+ "uri": "/bzr/2.1/2.1.3", "code_name": null, "name": "2.1.3"}, {"date": "2010-05-27",
144
+ "type": "release", "uri": "/bzr/2.1/2.1.2", "code_name": "", "name": "2.1.2"},
145
+ {"date": "2010-03-24", "type": "release", "uri": "/bzr/2.1/2.1.1", "code_name":
146
+ null, "name": "2.1.1"}, {"date": "2010-02-11", "type": "release", "uri": "/bzr/2.1/2.1.0",
147
+ "code_name": "Strasbourg", "name": "2.1.0"}, {"date": "2010-01-29", "type":
148
+ "release", "uri": "/bzr/2.1/2.1.0rc2", "code_name": "after the bubbles", "name":
149
+ "2.1.0rc2"}, {"date": "2010-01-21", "type": "release", "uri": "/bzr/2.1/2.1.0rc1",
150
+ "code_name": "the ''new'' stable", "name": "2.1.0rc1"}, {"date": "2009-12-14",
151
+ "type": "release", "uri": "/bzr/2.1/2.1.0b4", "code_name": "san francisco
152
+ airport", "name": "2.1.0b4"}, {"date": "2009-11-16", "type": "release", "uri":
153
+ "/bzr/2.1/2.1.0b3", "code_name": "after sprint recovery", "name": "2.1.0b3"},
154
+ {"date": "2009-11-03", "type": "release", "uri": "/bzr/2.1/2.1.0b2", "code_name":
155
+ null, "name": "2.1.0b2"}, {"date": "2009-10-14", "type": "release", "uri":
156
+ "/bzr/2.1/2.1.0b1", "code_name": "While the cat is away", "name": "2.1.0b1"}],
157
+ "web_link": "https://launchpad.net/bzr/2.1", "project_link": "https://api.launchpad.net/1.0/bzr",
158
+ "uri": "/bzr/2.1", "http_etag": "\"da39a3ee5e6b4b0d3255bfef95601890afd80709-5b2748514907f590a2c05f34c776d8649f72ca17\"",
159
+ "self_link": "https://api.launchpad.net/1.0/bzr/2.1", "resource_type_link":
160
+ "https://api.launchpad.net/1.0/#timeline_project_series", "is_development_focus":
161
+ false}]}'
162
+ http_version:
163
+ recorded_at: Sun, 18 May 2014 23:49:11 GMT
164
+ recorded_with: VCR 2.9.0
@@ -0,0 +1,28 @@
1
+ require_relative '../../spec_helper'
2
+
3
+ describe 'Rlaunchpadlib::Client' do
4
+
5
+ describe "GET" do
6
+
7
+ before do
8
+ VCR.insert_cassette 'client_get', :record => :new_episodes
9
+ end
10
+
11
+ after do
12
+ VCR.eject_cassette
13
+ end
14
+
15
+ before(:each) do
16
+ @client = Rlaunchpadlib::Client.new
17
+ end
18
+
19
+ it "on a basic resource returns a Hash Result" do
20
+ expect(@client.get('~lazypower')).to be_a(Hash)
21
+ end
22
+
23
+ it "on a sub-resource returns a Hash Result" do
24
+ expect(@client.get('charms', 'getTasks')).to be_a(Hash)
25
+ end
26
+
27
+ end
28
+ end
@@ -0,0 +1,147 @@
1
+ require_relative '../../spec_helper'
2
+
3
+ describe 'Rlaunchpadlib::Person' do
4
+
5
+ before(:each) do
6
+ @user = Rlaunchpadlib::Person.new('lazypower')
7
+ end
8
+
9
+ describe "GET profile" do
10
+
11
+ before do
12
+ VCR.insert_cassette 'person', :record => :new_episodes
13
+ end
14
+
15
+ after do
16
+ VCR.eject_cassette
17
+ end
18
+
19
+ it "returns profile data as a hash" do
20
+ expect(@user.profile).to be_a(Hash)
21
+ end
22
+
23
+ it "Knows if I've signed the code of conduct" do
24
+ expect(@user.profile['is_ubuntu_coc_signer']).to eq(true)
25
+ end
26
+
27
+ end
28
+
29
+ describe "GET Person Archive Subscriptions" do
30
+
31
+ before do
32
+ VCR.insert_cassette 'person_archivesubscriptions', :record => :new_episodes
33
+ end
34
+
35
+ after do
36
+ VCR.eject_cassette
37
+ end
38
+
39
+ it "returns a hash of Archive Subscriptions" do
40
+ expect(@user.archive_subscriptions).to be_a(Hash)
41
+ end
42
+ end
43
+
44
+ describe "GET Person Branches" do
45
+
46
+ before do
47
+ VCR.insert_cassette 'person_branches', :record => :new_episodes
48
+ end
49
+
50
+ after do
51
+ VCR.eject_cassette
52
+ end
53
+
54
+ it "returns a hash of Archive Subscriptions" do
55
+ expect(@user.branches).to be_a(Hash)
56
+ end
57
+ end
58
+
59
+ describe "GET Person Bug Subscriber Packages" do
60
+
61
+ before do
62
+ VCR.insert_cassette 'person_bug_subscriber_packages', :record => :new_episodes
63
+ end
64
+
65
+ after do
66
+ VCR.eject_cassette
67
+ end
68
+
69
+ it "returns a hash of Archive Subscriptions" do
70
+ expect(@user.bug_subscriber_packages).to be_a(Hash)
71
+ end
72
+ end
73
+
74
+ describe "GET Person Merge Proposals" do
75
+
76
+ before do
77
+ VCR.insert_cassette 'person_merge_proposals', :record => :new_episodes
78
+ end
79
+
80
+ after do
81
+ VCR.eject_cassette
82
+ end
83
+
84
+ it "returns a hash of Archive Subscriptions" do
85
+ expect(@user.merge_proposals).to be_a(Hash)
86
+ end
87
+ end
88
+
89
+ describe "GET Person Requested Reviews" do
90
+
91
+ before do
92
+ VCR.insert_cassette 'person_requested_reviews', :record => :new_episodes
93
+ end
94
+
95
+ after do
96
+ VCR.eject_cassette
97
+ end
98
+
99
+ it "returns a hash of Archive Subscriptions" do
100
+ expect(@user.requested_reviews).to be_a(Hash)
101
+ end
102
+ end
103
+
104
+ describe "GET Person Bugs" do
105
+
106
+ before do
107
+ VCR.insert_cassette 'person_bugs', :record => :new_episodes
108
+ end
109
+
110
+ after do
111
+ VCR.eject_cassette
112
+ end
113
+
114
+ it "returns a hash of Archive Subscriptions" do
115
+ expect(@user.bugs).to be_a(Hash)
116
+ end
117
+ end
118
+
119
+ describe "Reset Cache" do
120
+ it "clears all data storage attributes" do
121
+ # warm the caches
122
+ @user.archive_subscriptions_data = 1
123
+ @user.requested_reviews_data = 1
124
+ @user.merge_proposals_data = 1
125
+ @user.bug_subscribers_data = 1
126
+ @user.branches_data = 1
127
+ @user.archive_subscriptions_data = 1
128
+ # expunge the cache
129
+ @user.clear_cache
130
+ expect(@user.archive_subscriptions_data).to be_nil
131
+ expect(@user.requested_reviews_data).to be_nil
132
+ expect(@user.merge_proposals_data).to be_nil
133
+ expect(@user.bug_subscribers_data).to be_nil
134
+ expect(@user.branches_data).to be_nil
135
+ expect(@user.archive_subscriptions_data).to be_nil
136
+ end
137
+ end
138
+
139
+
140
+ describe "Dynamic Method Attributes" do
141
+
142
+ it "Translates hash keys to properties" do
143
+ expect(@user.is_ubuntu_coc_signer).to eq(true)
144
+ end
145
+ end
146
+
147
+ end
@@ -0,0 +1,93 @@
1
+ require_relative '../../spec_helper'
2
+
3
+ describe 'Rlaunchpadlib::ProjectGroup' do
4
+
5
+ before(:each) do
6
+ @projectgroup = Rlaunchpadlib::ProjectGroup.new('mozilla')
7
+ end
8
+
9
+ describe "GET overview" do
10
+
11
+ before do
12
+ VCR.insert_cassette 'project_group', :record => :new_episodes
13
+ end
14
+
15
+ after do
16
+ VCR.eject_cassette
17
+ end
18
+
19
+ it "records the fixture" do
20
+ @projectgroup.overview
21
+ end
22
+
23
+ it "returns overview data as a hash" do
24
+ expect(@projectgroup.overview).to be_a(Hash)
25
+ end
26
+
27
+
28
+
29
+ end
30
+
31
+ describe "Dynamic Method Attributes" do
32
+
33
+ it "Knows the project is active" do
34
+ expect(@projectgroup.active).to eq(true)
35
+ end
36
+
37
+ it "Has a title" do
38
+ expect(@projectgroup.title).to_not be_nil
39
+ end
40
+
41
+ end
42
+
43
+ describe "Subresource of ProjectGroup Bugs" do
44
+
45
+ before do
46
+ VCR.insert_cassette 'project_group_bugs', :record => :new_episodes
47
+ end
48
+
49
+ after do
50
+ VCR.eject_cassette
51
+ end
52
+
53
+ it "Returns a Hash of all bugs" do
54
+ expect(@projectgroup.bugs).to be_a(Hash)
55
+ end
56
+
57
+ end
58
+
59
+ describe "Subresource of ProjectGroup MPs" do
60
+
61
+ before do
62
+ VCR.insert_cassette 'project_group_merges', :record => :new_episodes
63
+ end
64
+
65
+ after do
66
+ VCR.eject_cassette
67
+ end
68
+
69
+ it "Returns a Hash of all MPs" do
70
+ expect(@projectgroup.merge_proposals).to be_a(Hash)
71
+ end
72
+
73
+ end
74
+
75
+
76
+ describe "Subresource of ProjectGroup Branches" do
77
+
78
+ before do
79
+ VCR.insert_cassette 'project_group_branches', :record => :new_episodes
80
+ end
81
+
82
+ after do
83
+ VCR.eject_cassette
84
+ end
85
+
86
+ it "Returns a Hash of all Branches" do
87
+ expect(@projectgroup.branches).to be_a(Hash)
88
+ end
89
+
90
+ end
91
+
92
+
93
+ end