facebook_test_users 0.0.2 → 0.1.4
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/README.md +62 -3
- data/bin/fbtu +1 -1
- data/facebook_test_users.gemspec +6 -4
- data/lib/facebook_test_users/app.rb +29 -13
- data/lib/facebook_test_users/cli.rb +209 -41
- data/lib/facebook_test_users/user.rb +25 -5
- data/lib/facebook_test_users/version.rb +1 -1
- data/spec/fbtu/apps/add_user_spec.rb +61 -0
- data/spec/fbtu/apps/register_spec.rb +36 -0
- data/spec/fbtu/apps/rm_user_spec.rb +42 -0
- data/spec/fbtu/apps_spec.rb +3 -1
- data/spec/fbtu/users/change_spec.rb +46 -0
- data/spec/fbtu/users/create_spec.rb +50 -0
- data/spec/fbtu/users/friend_spec.rb +3 -3
- data/spec/fbtu/users/list_apps_spec.rb +56 -0
- data/spec/fbtu/users/list_spec.rb +1 -1
- data/spec/fbtu/users/nuke_spec.rb +1 -1
- data/spec/fbtu/users/rm_spec.rb +56 -19
- data/spec/spec_helper.rb +21 -5
- data/test/real-add-rm-user-test.sh +112 -0
- metadata +103 -118
- data/spec/fbtu/apps/add_spec.rb +0 -36
- data/spec/fbtu/users/add_spec.rb +0 -22
data/spec/spec_helper.rb
CHANGED
|
@@ -2,6 +2,7 @@ require 'pp'
|
|
|
2
2
|
require 'stringio'
|
|
3
3
|
require 'tempfile'
|
|
4
4
|
require 'digest/md5'
|
|
5
|
+
require 'json'
|
|
5
6
|
|
|
6
7
|
require 'facebook_test_users'
|
|
7
8
|
require 'facebook_test_users/cli'
|
|
@@ -27,12 +28,13 @@ module FBTU
|
|
|
27
28
|
begin
|
|
28
29
|
capture_stdout_into(@out) do
|
|
29
30
|
capture_stderr_into(@err) do
|
|
30
|
-
FacebookTestUsers::CLI.start(argv_ish)
|
|
31
|
+
FacebookTestUsers::CLI::Main.start(argv_ish)
|
|
31
32
|
end
|
|
32
33
|
end
|
|
33
34
|
rescue Exception => e
|
|
34
35
|
unless options[:quiet]
|
|
35
|
-
puts "Something failed.\
|
|
36
|
+
puts "Something failed whilst executing fbtu script.\n" \
|
|
37
|
+
"Args:%s\nstdout:\n%s\n\nstderr:\n%s\n" % [
|
|
36
38
|
argv_ish.inspect,
|
|
37
39
|
@out.string,
|
|
38
40
|
@err.string
|
|
@@ -87,7 +89,7 @@ module FBTU
|
|
|
87
89
|
|
|
88
90
|
end # UserList
|
|
89
91
|
|
|
90
|
-
def
|
|
92
|
+
def register_app(name, opts={})
|
|
91
93
|
appinfo = {
|
|
92
94
|
:name => name,
|
|
93
95
|
:app_id => opts[:app_id] || 123456,
|
|
@@ -100,7 +102,7 @@ module FBTU
|
|
|
100
102
|
"https://graph.facebook.com/oauth/access_token?client_id=#{appinfo[:app_id]}&client_secret=#{appinfo[:app_secret]}&grant_type=client_credentials",
|
|
101
103
|
:body => "access_token=#{appinfo[:access_token]}")
|
|
102
104
|
|
|
103
|
-
fbtu (%w[apps
|
|
105
|
+
fbtu (%w[apps register --name] << name <<
|
|
104
106
|
'--app-id' << appinfo[:app_id] <<
|
|
105
107
|
'--app-secret' << appinfo[:app_secret])
|
|
106
108
|
|
|
@@ -109,7 +111,7 @@ module FBTU
|
|
|
109
111
|
app
|
|
110
112
|
end
|
|
111
113
|
|
|
112
|
-
def
|
|
114
|
+
def create_user_for(app)
|
|
113
115
|
# real FB test users all have IDs starting with 10000 (or at
|
|
114
116
|
# least the ones that I've seen; N=20 or so)
|
|
115
117
|
user_id = "10000" + rand(9999999999).to_s
|
|
@@ -153,6 +155,20 @@ module FBTU
|
|
|
153
155
|
:body => {"data" => user_data}.to_json)
|
|
154
156
|
end
|
|
155
157
|
|
|
158
|
+
def fakeweb_register_bad_request(method, url, code, error)
|
|
159
|
+
response = {
|
|
160
|
+
"error" => {
|
|
161
|
+
"message" => "(#{code}) " + error,
|
|
162
|
+
"type" => "OAuthException",
|
|
163
|
+
"code" => code
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
FakeWeb.register_uri(method, url,
|
|
168
|
+
:status => [ '400', 'Bad Request' ],
|
|
169
|
+
:body => response.to_json)
|
|
170
|
+
end
|
|
171
|
+
|
|
156
172
|
end # SetupHelpers
|
|
157
173
|
|
|
158
174
|
end
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Integration test script for testing various operations against live
|
|
4
|
+
# facebook API. Before running, register two separate facebook
|
|
5
|
+
# applications, and provide their registered names as command-line
|
|
6
|
+
# arguments.
|
|
7
|
+
|
|
8
|
+
fbtu='ruby -I./lib ./bin/fbtu'
|
|
9
|
+
|
|
10
|
+
fatal () {
|
|
11
|
+
echo >&2 "ERROR: $*"
|
|
12
|
+
exit 1
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
fail () {
|
|
16
|
+
tput bold
|
|
17
|
+
tput setaf 1
|
|
18
|
+
echo >&2 "not ok - $*"
|
|
19
|
+
tput sgr0
|
|
20
|
+
exit 1
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
ok () {
|
|
24
|
+
tput setaf 2
|
|
25
|
+
echo "ok - $*"
|
|
26
|
+
tput sgr0
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
should_succeed () {
|
|
30
|
+
name="$1"
|
|
31
|
+
shift
|
|
32
|
+
if "$@"; then
|
|
33
|
+
ok "$name"
|
|
34
|
+
else
|
|
35
|
+
fail "$name"
|
|
36
|
+
fi
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
should_fail () {
|
|
40
|
+
name="should fail: $1"
|
|
41
|
+
shift
|
|
42
|
+
if ! "$@"; then
|
|
43
|
+
ok "$name"
|
|
44
|
+
else
|
|
45
|
+
fail "$name"
|
|
46
|
+
fi
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
if [ $# != 2 ]; then
|
|
50
|
+
echo >&2 "Usage: $0 APP-A APP-B"
|
|
51
|
+
exit 1
|
|
52
|
+
fi
|
|
53
|
+
|
|
54
|
+
appA="$1"
|
|
55
|
+
appB="$2"
|
|
56
|
+
|
|
57
|
+
for app in "$appA" "$appB"; do
|
|
58
|
+
if ! $fbtu users list -a "$app"; then
|
|
59
|
+
echo >&2 "$app doesn't appear to be a valid app; aborting."
|
|
60
|
+
exit 1
|
|
61
|
+
fi
|
|
62
|
+
ok "$appA is a valid app"
|
|
63
|
+
done
|
|
64
|
+
|
|
65
|
+
if uid=$(
|
|
66
|
+
$fbtu users create --app "$appA" |
|
|
67
|
+
awk '/^User ID/ { print $3 }'
|
|
68
|
+
)
|
|
69
|
+
then
|
|
70
|
+
ok "created user with ID $uid"
|
|
71
|
+
else
|
|
72
|
+
fail "create user"
|
|
73
|
+
fi
|
|
74
|
+
|
|
75
|
+
should_succeed "change user name via $appA" \
|
|
76
|
+
$fbtu users change \
|
|
77
|
+
--app "$appA" \
|
|
78
|
+
--user "$uid" \
|
|
79
|
+
--name "Joe"
|
|
80
|
+
|
|
81
|
+
should_fail "change user name via $appB" \
|
|
82
|
+
$fbtu users change \
|
|
83
|
+
--app "$appB" \
|
|
84
|
+
--user "$uid" \
|
|
85
|
+
--name "Sir Joe"
|
|
86
|
+
|
|
87
|
+
should_fail "add user from $appB to $appA" \
|
|
88
|
+
$fbtu apps add-user \
|
|
89
|
+
--from-app "$appB" \
|
|
90
|
+
--to-app "$appA" \
|
|
91
|
+
--user "$uid"
|
|
92
|
+
|
|
93
|
+
should_succeed "add user from $appA to $appB" \
|
|
94
|
+
$fbtu apps add-user \
|
|
95
|
+
--from-app "$appA" \
|
|
96
|
+
--to-app "$appB" \
|
|
97
|
+
--user "$uid"
|
|
98
|
+
|
|
99
|
+
should_fail "rm user via $appA" \
|
|
100
|
+
$fbtu user rm --app "$appA" --user "$uid"
|
|
101
|
+
|
|
102
|
+
should_fail "rm user via $appB" \
|
|
103
|
+
$fbtu user rm --app "$appB" --user "$uid"
|
|
104
|
+
|
|
105
|
+
should_succeed "disassociate user from $appB" \
|
|
106
|
+
$fbtu apps rm-user --app "$appB" --user "$uid"
|
|
107
|
+
|
|
108
|
+
should_fail "disassociate user from $appA" \
|
|
109
|
+
$fbtu apps rm-user --app "$appA" --user "$uid"
|
|
110
|
+
|
|
111
|
+
should_succeed "rm user via $appA" \
|
|
112
|
+
$fbtu user rm --app "$appA" --user "$uid"
|
metadata
CHANGED
|
@@ -1,129 +1,114 @@
|
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: facebook_test_users
|
|
3
|
-
version: !ruby/object:Gem::Version
|
|
4
|
-
|
|
5
|
-
prerelease:
|
|
6
|
-
segments:
|
|
7
|
-
- 0
|
|
8
|
-
- 0
|
|
9
|
-
- 2
|
|
10
|
-
version: 0.0.2
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.1.4
|
|
5
|
+
prerelease:
|
|
11
6
|
platform: ruby
|
|
12
|
-
authors:
|
|
7
|
+
authors:
|
|
13
8
|
- Sam Merritt
|
|
14
9
|
autorequire:
|
|
15
10
|
bindir: bin
|
|
16
11
|
cert_chain: []
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
dependencies:
|
|
21
|
-
- !ruby/object:Gem::Dependency
|
|
12
|
+
date: 2013-03-07 00:00:00.000000000 Z
|
|
13
|
+
dependencies:
|
|
14
|
+
- !ruby/object:Gem::Dependency
|
|
22
15
|
name: rest-client
|
|
23
|
-
|
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
|
16
|
+
requirement: &70343335701160 !ruby/object:Gem::Requirement
|
|
25
17
|
none: false
|
|
26
|
-
requirements:
|
|
27
|
-
- -
|
|
28
|
-
- !ruby/object:Gem::Version
|
|
29
|
-
hash: 13
|
|
30
|
-
segments:
|
|
31
|
-
- 1
|
|
32
|
-
- 6
|
|
33
|
-
- 1
|
|
18
|
+
requirements:
|
|
19
|
+
- - ! '>='
|
|
20
|
+
- !ruby/object:Gem::Version
|
|
34
21
|
version: 1.6.1
|
|
35
22
|
type: :runtime
|
|
36
|
-
version_requirements: *id001
|
|
37
|
-
- !ruby/object:Gem::Dependency
|
|
38
|
-
name: thor
|
|
39
23
|
prerelease: false
|
|
40
|
-
|
|
24
|
+
version_requirements: *70343335701160
|
|
25
|
+
- !ruby/object:Gem::Dependency
|
|
26
|
+
name: thor
|
|
27
|
+
requirement: &70343335699880 !ruby/object:Gem::Requirement
|
|
41
28
|
none: false
|
|
42
|
-
requirements:
|
|
43
|
-
- -
|
|
44
|
-
- !ruby/object:Gem::Version
|
|
45
|
-
hash: 43
|
|
46
|
-
segments:
|
|
47
|
-
- 0
|
|
48
|
-
- 14
|
|
49
|
-
- 6
|
|
29
|
+
requirements:
|
|
30
|
+
- - ! '>='
|
|
31
|
+
- !ruby/object:Gem::Version
|
|
50
32
|
version: 0.14.6
|
|
51
33
|
type: :runtime
|
|
52
|
-
version_requirements: *id002
|
|
53
|
-
- !ruby/object:Gem::Dependency
|
|
54
|
-
name: json_pure
|
|
55
34
|
prerelease: false
|
|
56
|
-
|
|
35
|
+
version_requirements: *70343335699880
|
|
36
|
+
- !ruby/object:Gem::Dependency
|
|
37
|
+
name: multi_json
|
|
38
|
+
requirement: &70343335699300 !ruby/object:Gem::Requirement
|
|
57
39
|
none: false
|
|
58
|
-
requirements:
|
|
59
|
-
- -
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
|
|
62
|
-
segments:
|
|
63
|
-
- 1
|
|
64
|
-
- 5
|
|
65
|
-
- 0
|
|
66
|
-
version: 1.5.0
|
|
40
|
+
requirements:
|
|
41
|
+
- - ! '>='
|
|
42
|
+
- !ruby/object:Gem::Version
|
|
43
|
+
version: '0'
|
|
67
44
|
type: :runtime
|
|
68
|
-
version_requirements: *id003
|
|
69
|
-
- !ruby/object:Gem::Dependency
|
|
70
|
-
name: fakeweb
|
|
71
45
|
prerelease: false
|
|
72
|
-
|
|
46
|
+
version_requirements: *70343335699300
|
|
47
|
+
- !ruby/object:Gem::Dependency
|
|
48
|
+
name: heredoc_unindent
|
|
49
|
+
requirement: &70343335698260 !ruby/object:Gem::Requirement
|
|
73
50
|
none: false
|
|
74
|
-
requirements:
|
|
51
|
+
requirements:
|
|
52
|
+
- - ! '>='
|
|
53
|
+
- !ruby/object:Gem::Version
|
|
54
|
+
version: '0'
|
|
55
|
+
type: :runtime
|
|
56
|
+
prerelease: false
|
|
57
|
+
version_requirements: *70343335698260
|
|
58
|
+
- !ruby/object:Gem::Dependency
|
|
59
|
+
name: fakeweb
|
|
60
|
+
requirement: &70343335697460 !ruby/object:Gem::Requirement
|
|
61
|
+
none: false
|
|
62
|
+
requirements:
|
|
75
63
|
- - ~>
|
|
76
|
-
- !ruby/object:Gem::Version
|
|
77
|
-
hash: 27
|
|
78
|
-
segments:
|
|
79
|
-
- 1
|
|
80
|
-
- 3
|
|
81
|
-
- 0
|
|
64
|
+
- !ruby/object:Gem::Version
|
|
82
65
|
version: 1.3.0
|
|
83
66
|
type: :development
|
|
84
|
-
version_requirements: *id004
|
|
85
|
-
- !ruby/object:Gem::Dependency
|
|
86
|
-
name: fakeweb-matcher
|
|
87
67
|
prerelease: false
|
|
88
|
-
|
|
68
|
+
version_requirements: *70343335697460
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: fakeweb-matcher
|
|
71
|
+
requirement: &70343335696560 !ruby/object:Gem::Requirement
|
|
89
72
|
none: false
|
|
90
|
-
requirements:
|
|
73
|
+
requirements:
|
|
91
74
|
- - ~>
|
|
92
|
-
- !ruby/object:Gem::Version
|
|
93
|
-
hash: 27
|
|
94
|
-
segments:
|
|
95
|
-
- 1
|
|
96
|
-
- 2
|
|
97
|
-
- 2
|
|
75
|
+
- !ruby/object:Gem::Version
|
|
98
76
|
version: 1.2.2
|
|
99
77
|
type: :development
|
|
100
|
-
version_requirements: *id005
|
|
101
|
-
- !ruby/object:Gem::Dependency
|
|
102
|
-
name: rspec
|
|
103
78
|
prerelease: false
|
|
104
|
-
|
|
79
|
+
version_requirements: *70343335696560
|
|
80
|
+
- !ruby/object:Gem::Dependency
|
|
81
|
+
name: rspec
|
|
82
|
+
requirement: &70343335695800 !ruby/object:Gem::Requirement
|
|
105
83
|
none: false
|
|
106
|
-
requirements:
|
|
107
|
-
- -
|
|
108
|
-
- !ruby/object:Gem::Version
|
|
109
|
-
hash: 3
|
|
110
|
-
segments:
|
|
111
|
-
- 2
|
|
112
|
-
- 3
|
|
113
|
-
- 0
|
|
84
|
+
requirements:
|
|
85
|
+
- - ! '>='
|
|
86
|
+
- !ruby/object:Gem::Version
|
|
114
87
|
version: 2.3.0
|
|
115
88
|
type: :development
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
89
|
+
prerelease: false
|
|
90
|
+
version_requirements: *70343335695800
|
|
91
|
+
- !ruby/object:Gem::Dependency
|
|
92
|
+
name: json
|
|
93
|
+
requirement: &70343335695200 !ruby/object:Gem::Requirement
|
|
94
|
+
none: false
|
|
95
|
+
requirements:
|
|
96
|
+
- - ! '>='
|
|
97
|
+
- !ruby/object:Gem::Version
|
|
98
|
+
version: '0'
|
|
99
|
+
type: :development
|
|
100
|
+
prerelease: false
|
|
101
|
+
version_requirements: *70343335695200
|
|
102
|
+
description: Test users are extremely handy for testing your Facebook applications.
|
|
103
|
+
This gem lets you create and delete users and make them befriend one another. It
|
|
104
|
+
is intended to make testing your Facebook applications slightly less painful.
|
|
105
|
+
email:
|
|
119
106
|
- spam@andcheese.org
|
|
120
|
-
executables:
|
|
107
|
+
executables:
|
|
121
108
|
- fbtu
|
|
122
109
|
extensions: []
|
|
123
|
-
|
|
124
110
|
extra_rdoc_files: []
|
|
125
|
-
|
|
126
|
-
files:
|
|
111
|
+
files:
|
|
127
112
|
- .gitignore
|
|
128
113
|
- Gemfile
|
|
129
114
|
- LICENSE
|
|
@@ -138,56 +123,56 @@ files:
|
|
|
138
123
|
- lib/facebook_test_users/db.rb
|
|
139
124
|
- lib/facebook_test_users/user.rb
|
|
140
125
|
- lib/facebook_test_users/version.rb
|
|
141
|
-
- spec/fbtu/apps/
|
|
126
|
+
- spec/fbtu/apps/add_user_spec.rb
|
|
142
127
|
- spec/fbtu/apps/list_spec.rb
|
|
128
|
+
- spec/fbtu/apps/register_spec.rb
|
|
129
|
+
- spec/fbtu/apps/rm_user_spec.rb
|
|
143
130
|
- spec/fbtu/apps_spec.rb
|
|
144
|
-
- spec/fbtu/users/
|
|
131
|
+
- spec/fbtu/users/change_spec.rb
|
|
132
|
+
- spec/fbtu/users/create_spec.rb
|
|
145
133
|
- spec/fbtu/users/friend_spec.rb
|
|
134
|
+
- spec/fbtu/users/list_apps_spec.rb
|
|
146
135
|
- spec/fbtu/users/list_spec.rb
|
|
147
136
|
- spec/fbtu/users/nuke_spec.rb
|
|
148
137
|
- spec/fbtu/users/rm_spec.rb
|
|
149
138
|
- spec/spec_helper.rb
|
|
150
|
-
|
|
139
|
+
- test/real-add-rm-user-test.sh
|
|
151
140
|
homepage: https://github.com/smerritt/facebook_test_users
|
|
152
141
|
licenses: []
|
|
153
|
-
|
|
154
142
|
post_install_message:
|
|
155
143
|
rdoc_options: []
|
|
156
|
-
|
|
157
|
-
require_paths:
|
|
144
|
+
require_paths:
|
|
158
145
|
- lib
|
|
159
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
|
146
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
160
147
|
none: false
|
|
161
|
-
requirements:
|
|
162
|
-
- -
|
|
163
|
-
- !ruby/object:Gem::Version
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
- 0
|
|
167
|
-
version: "0"
|
|
168
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
148
|
+
requirements:
|
|
149
|
+
- - ! '>='
|
|
150
|
+
- !ruby/object:Gem::Version
|
|
151
|
+
version: '0'
|
|
152
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
169
153
|
none: false
|
|
170
|
-
requirements:
|
|
171
|
-
- -
|
|
172
|
-
- !ruby/object:Gem::Version
|
|
173
|
-
|
|
174
|
-
segments:
|
|
175
|
-
- 0
|
|
176
|
-
version: "0"
|
|
154
|
+
requirements:
|
|
155
|
+
- - ! '>='
|
|
156
|
+
- !ruby/object:Gem::Version
|
|
157
|
+
version: '0'
|
|
177
158
|
requirements: []
|
|
178
|
-
|
|
179
159
|
rubyforge_project: facebook_test_users
|
|
180
|
-
rubygems_version: 1.
|
|
160
|
+
rubygems_version: 1.8.10
|
|
181
161
|
signing_key:
|
|
182
162
|
specification_version: 3
|
|
183
163
|
summary: A CLI tool + library for manipulating Facebook test users
|
|
184
|
-
test_files:
|
|
185
|
-
- spec/fbtu/apps/
|
|
164
|
+
test_files:
|
|
165
|
+
- spec/fbtu/apps/add_user_spec.rb
|
|
186
166
|
- spec/fbtu/apps/list_spec.rb
|
|
167
|
+
- spec/fbtu/apps/register_spec.rb
|
|
168
|
+
- spec/fbtu/apps/rm_user_spec.rb
|
|
187
169
|
- spec/fbtu/apps_spec.rb
|
|
188
|
-
- spec/fbtu/users/
|
|
170
|
+
- spec/fbtu/users/change_spec.rb
|
|
171
|
+
- spec/fbtu/users/create_spec.rb
|
|
189
172
|
- spec/fbtu/users/friend_spec.rb
|
|
173
|
+
- spec/fbtu/users/list_apps_spec.rb
|
|
190
174
|
- spec/fbtu/users/list_spec.rb
|
|
191
175
|
- spec/fbtu/users/nuke_spec.rb
|
|
192
176
|
- spec/fbtu/users/rm_spec.rb
|
|
193
177
|
- spec/spec_helper.rb
|
|
178
|
+
- test/real-add-rm-user-test.sh
|