Commit 16914728c84a56f7c1eb539a4227809aee651161
1 parent
fccc9c74
Exists in
master
and in
29 other branches
[Mezuro] started error treatment when a project doesn't exist in kalibro
Showing
5 changed files
with
20 additions
and
21 deletions
Show diff stats
plugins/mezuro/lib/kalibro/client/project_client.rb
@@ -46,7 +46,15 @@ class Kalibro::Client::ProjectClient | @@ -46,7 +46,15 @@ class Kalibro::Client::ProjectClient | ||
46 | end | 46 | end |
47 | 47 | ||
48 | def project(project_name) | 48 | def project(project_name) |
49 | - hash = @port.request(:get_project, {:project_name => project_name})[:project] | 49 | + begin |
50 | + hash = @port.request(:get_project, {:project_name => project_name})[:project] | ||
51 | + rescue Exception => error | ||
52 | + if (error.to_s =~ /There is no project named/) != nil | ||
53 | + return nil | ||
54 | + else | ||
55 | + raise error | ||
56 | + end | ||
57 | + end | ||
50 | Kalibro::Entities::Project.from_hash(hash) | 58 | Kalibro::Entities::Project.from_hash(hash) |
51 | end | 59 | end |
52 | 60 |
plugins/mezuro/lib/mezuro_plugin/project_content.rb
@@ -14,19 +14,10 @@ class MezuroPlugin::ProjectContent < Article | @@ -14,19 +14,10 @@ class MezuroPlugin::ProjectContent < Article | ||
14 | include ActionView::Helpers::TagHelper | 14 | include ActionView::Helpers::TagHelper |
15 | def to_html(options = {}) | 15 | def to_html(options = {}) |
16 | lambda do | 16 | lambda do |
17 | - | ||
18 | - render :file => 'content_viewer/show_project.rhtml', :locals => { :project => project_kalibro, :error_kalibro => error_kalibro } | 17 | + render :file => 'content_viewer/show_project.rhtml' |
19 | end | 18 | end |
20 | end | 19 | end |
21 | 20 | ||
22 | - def rescue_error_kalibro | ||
23 | - error_kalibro = false | ||
24 | - begin | ||
25 | - project_kalibro = project | ||
26 | - rescue | ||
27 | - error_kalibro = true | ||
28 | - end | ||
29 | - end | ||
30 | 21 | ||
31 | def project | 22 | def project |
32 | @project ||= Kalibro::Client::ProjectClient.project(name) | 23 | @project ||= Kalibro::Client::ProjectClient.project(name) |
plugins/mezuro/test/unit/kalibro/client/project_client_test.rb
@@ -16,6 +16,13 @@ class ProjectClientTest < ActiveSupport::TestCase | @@ -16,6 +16,13 @@ class ProjectClientTest < ActiveSupport::TestCase | ||
16 | @port.expects(:request).with(:get_project, request_body).returns(response_hash) | 16 | @port.expects(:request).with(:get_project, request_body).returns(response_hash) |
17 | assert_equal @project, Kalibro::Client::ProjectClient.project(@project.name) | 17 | assert_equal @project, Kalibro::Client::ProjectClient.project(@project.name) |
18 | end | 18 | end |
19 | + | ||
20 | + should 'raise error when project doesnt exist' do | ||
21 | + request_body = {:project_name => @project.name} | ||
22 | + @port.expects(:request).with(:get_project, request_body) | ||
23 | + .raises(Exception.new("(S:Server) There is no project named " + @project.name)) | ||
24 | + assert_nil Kalibro::Client::ProjectClient.project(@project.name) | ||
25 | + end | ||
19 | 26 | ||
20 | should 'save project' do | 27 | should 'save project' do |
21 | create_project_content_mock | 28 | create_project_content_mock |
plugins/mezuro/test/unit/mezuro_plugin/project_content_test.rb
@@ -31,11 +31,6 @@ class ProjectContentTest < ActiveSupport::TestCase | @@ -31,11 +31,6 @@ class ProjectContentTest < ActiveSupport::TestCase | ||
31 | should 'have an html view' do | 31 | should 'have an html view' do |
32 | assert_not_nil @content.to_html | 32 | assert_not_nil @content.to_html |
33 | end | 33 | end |
34 | - | ||
35 | - should 'rescue error when project doesnt exist in kalibro' do | ||
36 | - MezuroPlugin::ProjectContent.expects(:project).returns(create_project_error) | ||
37 | - assert_equal true, @content.rescue_error_kalibro | ||
38 | - end | ||
39 | 34 | ||
40 | should 'get project from service' do | 35 | should 'get project from service' do |
41 | Kalibro::Client::ProjectClient.expects(:project).with(@content.name).returns(@project) | 36 | Kalibro::Client::ProjectClient.expects(:project).with(@content.name).returns(@project) |
plugins/mezuro/views/content_viewer/show_project.rhtml
1 | <script src="/plugins/mezuro/javascripts/project_content.js" type="text/javascript"></script> | 1 | <script src="/plugins/mezuro/javascripts/project_content.js" type="text/javascript"></script> |
2 | -<% if error_kalibro %> | ||
3 | - Projeto nao existe TODO: Perguntar oa usuário se deseja excluir o projeto do Noosfero | ||
4 | -<% else %> | ||
5 | -<% @project = project %> | 2 | + |
3 | +<% @project = @page.project %> | ||
6 | <table> | 4 | <table> |
7 | <tr> | 5 | <tr> |
8 | <td><%= _('Name') %></td> | 6 | <td><%= _('Name') %></td> |
@@ -45,4 +43,4 @@ | @@ -45,4 +43,4 @@ | ||
45 | <div id="project-tree"></div> | 43 | <div id="project-tree"></div> |
46 | <div id="module-result"> | 44 | <div id="module-result"> |
47 | </div> | 45 | </div> |
48 | -<% end %> | 46 | + |