From 754442b00829ebdebd5c9a657221c4637768e7fc Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Sun, 22 May 2011 17:49:24 -0700 Subject: Do not use a global temp directory in our tests --- t/005_builder.t | 4 ++-- t/data/test.yml | 4 ++-- t/tmp/build/.exists | 0 t/tmp/reports/.exists | 0 4 files changed, 4 insertions(+), 4 deletions(-) create mode 100644 t/tmp/build/.exists create mode 100644 t/tmp/reports/.exists diff --git a/t/005_builder.t b/t/005_builder.t index cc0bb0a..603001a 100644 --- a/t/005_builder.t +++ b/t/005_builder.t @@ -77,10 +77,10 @@ jitterbug::Test->init(); }, 'builder' => {}, 'reports' => { - 'dir' => '/tmp/jitterbug' + 'dir' => './t/tmp/reports' }, 'build' => { - 'dir' => '/tmp/build' + 'dir' => './t/tmp/build', }, 'options' => { 'email_on_pass' => '0', diff --git a/t/data/test.yml b/t/data/test.yml index d8d21c0..98f8e65 100644 --- a/t/data/test.yml +++ b/t/data/test.yml @@ -12,9 +12,9 @@ engines: jitterbug: reports: - dir: /tmp/jitterbug + dir: ./t/tmp/reports build: - dir: /tmp/build + dir: ./t/tmp/build build_process: builder: ./scripts/capsule.sh builder_variables: STUFF=BLAH diff --git a/t/tmp/build/.exists b/t/tmp/build/.exists new file mode 100644 index 0000000..e69de29 diff --git a/t/tmp/reports/.exists b/t/tmp/reports/.exists new file mode 100644 index 0000000..e69de29 -- cgit v1.2.3 From fbab7044c8c4943fd761416415d80465d57850d8 Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Sun, 22 May 2011 18:05:16 -0700 Subject: Error out early if a task id is not given --- lib/jitterbug/Task.pm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/jitterbug/Task.pm b/lib/jitterbug/Task.pm index dd7d1f6..bd949e3 100644 --- a/lib/jitterbug/Task.pm +++ b/lib/jitterbug/Task.pm @@ -5,10 +5,14 @@ use Dancer::Plugin::DBIC; use jitterbug::Plugin::Template; get '/:id' => sub { - my $task = schema->resultset('Task')->find( params->{id} ); + unless ( defined params->{id} ) { + send_error("task id missing!", 400); + return; + } + my $task = schema->resultset('Task')->find( params->{id} ); - if ( !defined $task ) { + unless ( defined $task ) { send_error("task does not exist!", 404); return; } -- cgit v1.2.3 From 0962bea6887d6d1ec5e74ddbc3a53467cf44c150 Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Sun, 22 May 2011 18:12:40 -0700 Subject: add a script to trigger our hook --- scripts/trigger_hook | 57 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 scripts/trigger_hook diff --git a/scripts/trigger_hook b/scripts/trigger_hook new file mode 100644 index 0000000..7c031af --- /dev/null +++ b/scripts/trigger_hook @@ -0,0 +1,57 @@ +use strict; +use warnings; + +use jitterbug; +use jitterbug::Schema; + +use JSON; +use YAML qw/LoadFile Dump/; + +use File::Spec; +use File::Temp qw/tempdir/; + +use Dancer::Test; +use Dancer::Config qw/setting/; + +my $content = LoadFile('t/data/test.yaml'); + +my $db_file = File::Spec->catfile( qw/jitterbug.db/ ); +my $dsn = 'dbi:SQLite:dbname=' . $db_file; +my $schema = jitterbug::Schema->connect($dsn); +# assume we have a deployed schema +# $schema->deploy; + +setting plugins => { + DBIC => { + schema => { + skip_automake => 1, + pckg => "jitterbug::Schema", + connect_info => [$dsn] + } + } +}; + +{ + my $response = dancer_response( + POST => '/hook/', + { + headers => + [ 'Content-Type' => 'application/x-www-form-urlencoded' ], + body => _generate_post_request($content), + } + ); + + printf "Response was: %s\n", $response->{status}; +} + +sub _generate_post_request { + my $content = shift; + my $payload = "payload=" . JSON::encode_json($content); + open my $in, '<', \$payload; + + $ENV{'CONTENT_LENGTH'} = length($payload); + $ENV{'CONTENT_TYPE'} = 'application/x-www-form-urlencoded'; + $ENV{'psgi.input'} = $in; + return $payload; +} + -- cgit v1.2.3 From ebd747bd5cb533f9f3df63c533b04df61950f9da Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Sun, 22 May 2011 19:52:50 -0700 Subject: Rename our hook data YAML to be more descriptive --- eg/post_hook.t | 2 +- t/003_hook_route.t | 2 +- t/data/hook_data.yml | 43 +++++++++++++++++++++++++++++++++++++++++++ t/data/test.yaml | 43 ------------------------------------------- 4 files changed, 45 insertions(+), 45 deletions(-) create mode 100644 t/data/hook_data.yml delete mode 100644 t/data/test.yaml diff --git a/eg/post_hook.t b/eg/post_hook.t index 3715abc..8e2e9e6 100644 --- a/eg/post_hook.t +++ b/eg/post_hook.t @@ -6,7 +6,7 @@ use HTTP::Request::Common; use YAML qw/LoadFile/; use JSON; -my $content = LoadFile('t/data/test.yaml'); +my $content = LoadFile('t/data/hook_data.yml'); my $payload = JSON::encode_json($content); my $url = "http://localhost:5000/hook/"; diff --git a/t/003_hook_route.t b/t/003_hook_route.t index 0ce6771..cfd914b 100644 --- a/t/003_hook_route.t +++ b/t/003_hook_route.t @@ -14,7 +14,7 @@ use File::Temp qw/tempdir/; use Dancer::Test; use Dancer::Config qw/setting/; -my $content = LoadFile('t/data/test.yaml'); +my $content = LoadFile('t/data/hook_data.yml'); my $db_dir = tempdir( CLEANUP => 1 ); my $db_file = File::Spec->catfile( $db_dir, 'jitterbug.db' ); diff --git a/t/data/hook_data.yml b/t/data/hook_data.yml new file mode 100644 index 0000000..c8e1a63 --- /dev/null +++ b/t/data/hook_data.yml @@ -0,0 +1,43 @@ +--- +after: 22116bcdb229c1514f3069aaaf9c87e9d5455409 +before: db8d02317fce7fa2d8f5b75273302eee7b266b87 +commits: + - + added: [] + + author: + email: franck@lumberjaph.net + name: franck cuny + #id: 8c3c1d6be0fa27ada4f03258ddea7683c967a925 + id: ba54d9b7d82eabe4ba35ec212eb24d00869119d5 + message: test + modified: + - lib/Dancer.pm + removed: [] + + timestamp: 2010-09-23T08:04:42-07:00 + url: https://github.com/franckcuny/Dancer/commit/22116bcdb229c1514f3069aaaf9c87e9d5455409 +compare: https://github.com/franckcuny/Dancer/compare/db8d023...22116bc +forced: !!perl/scalar:JSON::XS::Boolean 0 +pusher: + email: franck@lumberjaph.net + name: franckcuny +ref: refs/heads/test +repository: + created_at: 2010/01/14 12:58:56 -0800 + description: Minimal-effort oriented web application framework for Perl (port of Ruby's Sinatra) + fork: !!perl/scalar:JSON::XS::Boolean 1 + forks: 0 + has_downloads: !!perl/scalar:JSON::XS::Boolean 1 + has_issues: !!perl/scalar:JSON::XS::Boolean 0 + has_wiki: !!perl/scalar:JSON::XS::Boolean 1 + homepage: '' + name: Dancer + open_issues: 0 + owner: + email: franck@lumberjaph.net + name: franckcuny + private: !!perl/scalar:JSON::XS::Boolean 1 + pushed_at: 2010/09/23 08:04:49 -0700 + url: https://github.com/sukria/Dancer + watchers: 1 diff --git a/t/data/test.yaml b/t/data/test.yaml deleted file mode 100644 index c8e1a63..0000000 --- a/t/data/test.yaml +++ /dev/null @@ -1,43 +0,0 @@ ---- -after: 22116bcdb229c1514f3069aaaf9c87e9d5455409 -before: db8d02317fce7fa2d8f5b75273302eee7b266b87 -commits: - - - added: [] - - author: - email: franck@lumberjaph.net - name: franck cuny - #id: 8c3c1d6be0fa27ada4f03258ddea7683c967a925 - id: ba54d9b7d82eabe4ba35ec212eb24d00869119d5 - message: test - modified: - - lib/Dancer.pm - removed: [] - - timestamp: 2010-09-23T08:04:42-07:00 - url: https://github.com/franckcuny/Dancer/commit/22116bcdb229c1514f3069aaaf9c87e9d5455409 -compare: https://github.com/franckcuny/Dancer/compare/db8d023...22116bc -forced: !!perl/scalar:JSON::XS::Boolean 0 -pusher: - email: franck@lumberjaph.net - name: franckcuny -ref: refs/heads/test -repository: - created_at: 2010/01/14 12:58:56 -0800 - description: Minimal-effort oriented web application framework for Perl (port of Ruby's Sinatra) - fork: !!perl/scalar:JSON::XS::Boolean 1 - forks: 0 - has_downloads: !!perl/scalar:JSON::XS::Boolean 1 - has_issues: !!perl/scalar:JSON::XS::Boolean 0 - has_wiki: !!perl/scalar:JSON::XS::Boolean 1 - homepage: '' - name: Dancer - open_issues: 0 - owner: - email: franck@lumberjaph.net - name: franckcuny - private: !!perl/scalar:JSON::XS::Boolean 1 - pushed_at: 2010/09/23 08:04:49 -0700 - url: https://github.com/sukria/Dancer - watchers: 1 -- cgit v1.2.3 From 315236b6b34ae6dc2c85261b4b08d1e7881ba5ab Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Sun, 22 May 2011 19:56:08 -0700 Subject: Use catfile for portability --- eg/post_hook.t | 3 ++- t/003_hook_route.t | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/eg/post_hook.t b/eg/post_hook.t index 8e2e9e6..4165f46 100644 --- a/eg/post_hook.t +++ b/eg/post_hook.t @@ -5,8 +5,9 @@ use LWP::UserAgent; use HTTP::Request::Common; use YAML qw/LoadFile/; use JSON; +use File::Spec::Functions; -my $content = LoadFile('t/data/hook_data.yml'); +my $content = LoadFile(catfile(qw/t data hook_data.yml/)); my $payload = JSON::encode_json($content); my $url = "http://localhost:5000/hook/"; diff --git a/t/003_hook_route.t b/t/003_hook_route.t index cfd914b..0361b15 100644 --- a/t/003_hook_route.t +++ b/t/003_hook_route.t @@ -13,8 +13,10 @@ use File::Temp qw/tempdir/; use Dancer::Test; use Dancer::Config qw/setting/; +use File::Spec::Functions; +my $hook_data = catfile(qw/t data hook_data.yml/); -my $content = LoadFile('t/data/hook_data.yml'); +my $content = LoadFile($hook_data); my $db_dir = tempdir( CLEANUP => 1 ); my $db_file = File::Spec->catfile( $db_dir, 'jitterbug.db' ); -- cgit v1.2.3 From 84fbb8ac93b7a17e8bbd376faf40a4eb250a30ef Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Sun, 22 May 2011 20:07:01 -0700 Subject: Use test db --- scripts/trigger_hook | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/scripts/trigger_hook b/scripts/trigger_hook index 7c031af..2e2f717 100644 --- a/scripts/trigger_hook +++ b/scripts/trigger_hook @@ -7,15 +7,14 @@ use jitterbug::Schema; use JSON; use YAML qw/LoadFile Dump/; -use File::Spec; use File::Temp qw/tempdir/; use Dancer::Test; use Dancer::Config qw/setting/; +use File::Spec::Functions; -my $content = LoadFile('t/data/test.yaml'); - -my $db_file = File::Spec->catfile( qw/jitterbug.db/ ); +my $content = LoadFile(catfile(qw/t data hook_data.yml/)); +my $db_file = catfile( qw/t data jitterbug.db/ ); my $dsn = 'dbi:SQLite:dbname=' . $db_file; my $schema = jitterbug::Schema->connect($dsn); # assume we have a deployed schema -- cgit v1.2.3 From 77b0c36408113a9719397f5acbbd73a5f431e7d6 Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Sun, 22 May 2011 20:08:18 -0700 Subject: Rename trigger script --- scripts/post_to_hook.pl | 56 +++++++++++++++++++++++++++++++++++++++++++++++++ scripts/trigger_hook | 56 ------------------------------------------------- 2 files changed, 56 insertions(+), 56 deletions(-) create mode 100644 scripts/post_to_hook.pl delete mode 100644 scripts/trigger_hook diff --git a/scripts/post_to_hook.pl b/scripts/post_to_hook.pl new file mode 100644 index 0000000..2e2f717 --- /dev/null +++ b/scripts/post_to_hook.pl @@ -0,0 +1,56 @@ +use strict; +use warnings; + +use jitterbug; +use jitterbug::Schema; + +use JSON; +use YAML qw/LoadFile Dump/; + +use File::Temp qw/tempdir/; + +use Dancer::Test; +use Dancer::Config qw/setting/; +use File::Spec::Functions; + +my $content = LoadFile(catfile(qw/t data hook_data.yml/)); +my $db_file = catfile( qw/t data jitterbug.db/ ); +my $dsn = 'dbi:SQLite:dbname=' . $db_file; +my $schema = jitterbug::Schema->connect($dsn); +# assume we have a deployed schema +# $schema->deploy; + +setting plugins => { + DBIC => { + schema => { + skip_automake => 1, + pckg => "jitterbug::Schema", + connect_info => [$dsn] + } + } +}; + +{ + my $response = dancer_response( + POST => '/hook/', + { + headers => + [ 'Content-Type' => 'application/x-www-form-urlencoded' ], + body => _generate_post_request($content), + } + ); + + printf "Response was: %s\n", $response->{status}; +} + +sub _generate_post_request { + my $content = shift; + my $payload = "payload=" . JSON::encode_json($content); + open my $in, '<', \$payload; + + $ENV{'CONTENT_LENGTH'} = length($payload); + $ENV{'CONTENT_TYPE'} = 'application/x-www-form-urlencoded'; + $ENV{'psgi.input'} = $in; + return $payload; +} + diff --git a/scripts/trigger_hook b/scripts/trigger_hook deleted file mode 100644 index 2e2f717..0000000 --- a/scripts/trigger_hook +++ /dev/null @@ -1,56 +0,0 @@ -use strict; -use warnings; - -use jitterbug; -use jitterbug::Schema; - -use JSON; -use YAML qw/LoadFile Dump/; - -use File::Temp qw/tempdir/; - -use Dancer::Test; -use Dancer::Config qw/setting/; -use File::Spec::Functions; - -my $content = LoadFile(catfile(qw/t data hook_data.yml/)); -my $db_file = catfile( qw/t data jitterbug.db/ ); -my $dsn = 'dbi:SQLite:dbname=' . $db_file; -my $schema = jitterbug::Schema->connect($dsn); -# assume we have a deployed schema -# $schema->deploy; - -setting plugins => { - DBIC => { - schema => { - skip_automake => 1, - pckg => "jitterbug::Schema", - connect_info => [$dsn] - } - } -}; - -{ - my $response = dancer_response( - POST => '/hook/', - { - headers => - [ 'Content-Type' => 'application/x-www-form-urlencoded' ], - body => _generate_post_request($content), - } - ); - - printf "Response was: %s\n", $response->{status}; -} - -sub _generate_post_request { - my $content = shift; - my $payload = "payload=" . JSON::encode_json($content); - open my $in, '<', \$payload; - - $ENV{'CONTENT_LENGTH'} = length($payload); - $ENV{'CONTENT_TYPE'} = 'application/x-www-form-urlencoded'; - $ENV{'psgi.input'} = $in; - return $payload; -} - -- cgit v1.2.3 From 9836838062eb5d9687b67b2fc36717bfc2c34c50 Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Sun, 22 May 2011 20:09:31 -0700 Subject: Allow a file to be specified to post_to_hook.pl --- scripts/post_to_hook.pl | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/post_to_hook.pl b/scripts/post_to_hook.pl index 2e2f717..55d3d73 100644 --- a/scripts/post_to_hook.pl +++ b/scripts/post_to_hook.pl @@ -13,7 +13,8 @@ use Dancer::Test; use Dancer::Config qw/setting/; use File::Spec::Functions; -my $content = LoadFile(catfile(qw/t data hook_data.yml/)); +my $content = LoadFile(shift || catfile(qw/t data hook_data.yml/)); + my $db_file = catfile( qw/t data jitterbug.db/ ); my $dsn = 'dbi:SQLite:dbname=' . $db_file; my $schema = jitterbug::Schema->connect($dsn); -- cgit v1.2.3 From e91550dcda82765c5744be93fd0330eb2d76cdca Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Sun, 22 May 2011 20:41:57 -0700 Subject: Add a bare git repo for testing --- t/data/testing.git/HEAD | 1 + t/data/testing.git/config | 4 ++++ t/data/testing.git/description | 1 + t/data/testing.git/info/exclude | 6 ++++++ .../pack-298dcfe572066343c474309f9e4bb06ea58d811d.idx | Bin 0 -> 5188 bytes .../pack-298dcfe572066343c474309f9e4bb06ea58d811d.pack | Bin 0 -> 12344 bytes t/data/testing.git/packed-refs | 2 ++ 7 files changed, 14 insertions(+) create mode 100644 t/data/testing.git/HEAD create mode 100644 t/data/testing.git/config create mode 100644 t/data/testing.git/description create mode 100644 t/data/testing.git/info/exclude create mode 100644 t/data/testing.git/objects/pack/pack-298dcfe572066343c474309f9e4bb06ea58d811d.idx create mode 100644 t/data/testing.git/objects/pack/pack-298dcfe572066343c474309f9e4bb06ea58d811d.pack create mode 100644 t/data/testing.git/packed-refs diff --git a/t/data/testing.git/HEAD b/t/data/testing.git/HEAD new file mode 100644 index 0000000..cb089cd --- /dev/null +++ b/t/data/testing.git/HEAD @@ -0,0 +1 @@ +ref: refs/heads/master diff --git a/t/data/testing.git/config b/t/data/testing.git/config new file mode 100644 index 0000000..07d359d --- /dev/null +++ b/t/data/testing.git/config @@ -0,0 +1,4 @@ +[core] + repositoryformatversion = 0 + filemode = true + bare = true diff --git a/t/data/testing.git/description b/t/data/testing.git/description new file mode 100644 index 0000000..498b267 --- /dev/null +++ b/t/data/testing.git/description @@ -0,0 +1 @@ +Unnamed repository; edit this file 'description' to name the repository. diff --git a/t/data/testing.git/info/exclude b/t/data/testing.git/info/exclude new file mode 100644 index 0000000..a5196d1 --- /dev/null +++ b/t/data/testing.git/info/exclude @@ -0,0 +1,6 @@ +# git ls-files --others --exclude-from=.git/info/exclude +# Lines that start with '#' are comments. +# For a project mostly in C, the following would be a good set of +# exclude patterns (uncomment them if you want to use them): +# *.[oa] +# *~ diff --git a/t/data/testing.git/objects/pack/pack-298dcfe572066343c474309f9e4bb06ea58d811d.idx b/t/data/testing.git/objects/pack/pack-298dcfe572066343c474309f9e4bb06ea58d811d.idx new file mode 100644 index 0000000..f03f9d2 Binary files /dev/null and b/t/data/testing.git/objects/pack/pack-298dcfe572066343c474309f9e4bb06ea58d811d.idx differ diff --git a/t/data/testing.git/objects/pack/pack-298dcfe572066343c474309f9e4bb06ea58d811d.pack b/t/data/testing.git/objects/pack/pack-298dcfe572066343c474309f9e4bb06ea58d811d.pack new file mode 100644 index 0000000..6d0725c Binary files /dev/null and b/t/data/testing.git/objects/pack/pack-298dcfe572066343c474309f9e4bb06ea58d811d.pack differ diff --git a/t/data/testing.git/packed-refs b/t/data/testing.git/packed-refs new file mode 100644 index 0000000..4a1d788 --- /dev/null +++ b/t/data/testing.git/packed-refs @@ -0,0 +1,2 @@ +# pack-refs with: peeled +3ab75b9a29e09bf027f64250b44cab19b316c128 refs/heads/master -- cgit v1.2.3 From e5cecb57bde9f8a7ac31a1cad5af5f069a9ae134 Mon Sep 17 00:00:00 2001 From: "Jonathan \"Duke\" Leto" Date: Sun, 22 May 2011 20:43:32 -0700 Subject: Make hook test data refer to the new git repo for testing --- t/data/hook_data.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/t/data/hook_data.yml b/t/data/hook_data.yml index c8e1a63..da5b78f 100644 --- a/t/data/hook_data.yml +++ b/t/data/hook_data.yml @@ -39,5 +39,5 @@ repository: name: franckcuny private: !!perl/scalar:JSON::XS::Boolean 1 pushed_at: 2010/09/23 08:04:49 -0700 - url: https://github.com/sukria/Dancer + url: ./t/data/testing.git watchers: 1 -- cgit v1.2.3