You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by "Michal Fojtik (JIRA)" <ji...@apache.org> on 2011/04/05 12:16:06 UTC
[jira] [Created] (DTACLOUD-33) Create unit tests for drivers like
Rackspace
Create unit tests for drivers like Rackspace
--------------------------------------------
Key: DTACLOUD-33
URL: https://issues.apache.org/jira/browse/DTACLOUD-33
Project: DeltaCloud
Issue Type: Improvement
Components: Server
Reporter: Michal Fojtik
Assignee: Michal Fojtik
Create set of unit tests for backend drivers
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (DTACLOUD-33) Create unit tests for drivers like
Rackspace
Posted by "Michal Fojtik (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/DTACLOUD-33?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michal Fojtik updated DTACLOUD-33:
----------------------------------
Attachment: rackspace_tests_rev2.zip
Fixed unit tests (rev 2)
> Create unit tests for drivers like Rackspace
> --------------------------------------------
>
> Key: DTACLOUD-33
> URL: https://issues.apache.org/jira/browse/DTACLOUD-33
> Project: DeltaCloud
> Issue Type: Improvement
> Components: Server
> Reporter: Michal Fojtik
> Assignee: Michal Fojtik
> Attachments: rackspace_tests_rev2.zip, rackspace_unit_tests.patch.zip
>
>
> Create set of unit tests for backend drivers
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Updated] (DTACLOUD-33) Create unit tests for drivers like
Rackspace
Posted by "Michal Fojtik (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/DTACLOUD-33?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Michal Fojtik updated DTACLOUD-33:
----------------------------------
Attachment: rackspace_unit_tests.patch.zip
Rackspace Unit tests
> Create unit tests for drivers like Rackspace
> --------------------------------------------
>
> Key: DTACLOUD-33
> URL: https://issues.apache.org/jira/browse/DTACLOUD-33
> Project: DeltaCloud
> Issue Type: Improvement
> Components: Server
> Reporter: Michal Fojtik
> Assignee: Michal Fojtik
> Attachments: rackspace_unit_tests.patch.zip
>
>
> Create set of unit tests for backend drivers
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
Re: [jira] [Commented] (DTACLOUD-33) Create unit tests for drivers like Rackspace
Posted by Michal Fojtik <mi...@mifo.sk>.
On Apr 5, 2011, at 1:47 PM, Marios Andreou (JIRA) wrote:
>
> [ https://issues.apache.org/jira/browse/DTACLOUD-33?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13015880#comment-13015880 ]
>
> Marios Andreou commented on DTACLOUD-33:
> ----------------------------------------
>
> Hi Michal - thought I'd reply here since I used the patch attached here. Came across couple issues, comments below (seperated by '=======' for sanity):
>
> ====================================================================
>
> * applies fine except for some whitespace errors (this is a non-issue but I put it here for your reference):
> <stdin>:1466: trailing whitespace.
> ---
> <stdin>:1467: trailing whitespace.
> - !ruby/struct:VCR::HTTPInteraction
> <stdin>:1468: trailing whitespace.
> request: !ruby/struct:VCR::Request
> <stdin>:1471: trailing whitespace.
> body:
> <stdin>:1472: trailing whitespace.
> headers:
> warning: squelched 1197 whitespace errors
> warning: 1201 lines applied after fixing whitespace errors.
Yes, I'm sorry for this whitespace warnings but they are mostly produced by VCR cassettes,
which are 'recorded'. So I can fix that manually but IMHO for this case this is OK.
>
> ====================================================================
>
> * rake test:mock gave me 1 error... trace:
>
> [marios@marios server]$ rake test:mock --trace
> (in /home/marios/Documents/WORK/NewEclipsey/DCore/deltacloud/server)
> ** Invoke test:mock (first_time)
> ** Execute test:mock
> /usr/bin/ruby -I"lib" "/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "tests/common.rb" "tests/drivers/mock/setup.rb" "tests/drivers/mock/images_test.rb" "tests/drivers/mock/hardware_profiles_test.rb" "tests/drivers/mock/url_for_test.rb" "tests/drivers/mock/instance_states_test.rb" "tests/drivers/mock/instances_test.rb" "tests/drivers/mock/api_test.rb" "tests/drivers/mock/realms_test.rb" "tests/rabbit_test.rb" -v -v
> Loaded suite /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader
> Started
> test_effective_params(DeltacloudUnitTest::ApiTest): .
> test_it_allows_accessing_docs(DeltacloudUnitTest::ApiTest): .
> test_it_change_features_after_driver_change(DeltacloudUnitTest::ApiTest): .
> test_it_expose_available_drivers(DeltacloudUnitTest::ApiTest): .
> test_it_expose_ec2_driver_entrypoints(DeltacloudUnitTest::ApiTest): E
> test_it_handles_unsupported_collections(DeltacloudUnitTest::ApiTest): .
> test_it_has_correct_attributes_set(DeltacloudUnitTest::ApiTest): .
> test_it_respond_to_head(DeltacloudUnitTest::ApiTest): .
> test_it_responses_to_html(DeltacloudUnitTest::ApiTest): .
> test_it_responses_to_json(DeltacloudUnitTest::ApiTest): .
> test_it_returns_entry_points(DeltacloudUnitTest::ApiTest): .
> test_it_supports_matrix_params(DeltacloudUnitTest::ApiTest): .
> test_it_switches_drivers(DeltacloudUnitTest::ApiTest): .
> test_params(DeltacloudUnitTest::ApiTest): .
> test_hardware_profiles_have_name(DeltacloudUnitTest::HardwareProfilesTest): .
> test_hardware_profiles_have_unique_id(DeltacloudUnitTest::HardwareProfilesTest): .
> test_hardware_profiles_have_unique_name(DeltacloudUnitTest::HardwareProfilesTest): .
> test_img1_has_correct_attributes(DeltacloudUnitTest::HardwareProfilesTest): .
> test_it_can_filter_using_architecture(DeltacloudUnitTest::HardwareProfilesTest): .
> test_it_can_filter_using_owner_id(DeltacloudUnitTest::HardwareProfilesTest): .
> test_it_can_filter_using_unknown_architecture(DeltacloudUnitTest::HardwareProfilesTest): .
> test_it_can_filter_using_unknown_owner_id(DeltacloudUnitTest::HardwareProfilesTest): .
> test_it_has_correct_attributes_set(DeltacloudUnitTest::HardwareProfilesTest): .
> test_it_has_unique_ids(DeltacloudUnitTest::HardwareProfilesTest): .
> test_it_has_valid_urls(DeltacloudUnitTest::HardwareProfilesTest): .
> test_it_require_authentication(DeltacloudUnitTest::HardwareProfilesTest): .
> test_it_responses_to_html(DeltacloudUnitTest::HardwareProfilesTest): .
> test_it_responses_to_json(DeltacloudUnitTest::HardwareProfilesTest): .
> test_it_returns_error_on_wrong_name(DeltacloudUnitTest::HardwareProfilesTest): .
> test_it_returns_hardware_profiles(DeltacloudUnitTest::HardwareProfilesTest): .
> test_it_returns_images(DeltacloudUnitTest::HardwareProfilesTest): .
> test_it_returns_valid_hardware_profile(DeltacloudUnitTest::HardwareProfilesTest): .
> test_it_returns_valid_image(DeltacloudUnitTest::HardwareProfilesTest): .
> test_m1_xlarge_profile_has_correct_attributes(DeltacloudUnitTest::HardwareProfilesTest): .
> test_inst1_has_correct_attributes(DeltacloudUnitTest::InstancesTest): .
> test_it_create_a_new_instance_using_image_id(DeltacloudUnitTest::InstancesTest): .
> test_it_create_a_new_instance_using_image_id_and_name(DeltacloudUnitTest::InstancesTest): .
> test_it_create_a_new_instance_using_image_id_and_name_and_hwp(DeltacloudUnitTest::InstancesTest): .
> test_it_has_correct_attributes_set(DeltacloudUnitTest::InstancesTest): .
> test_it_has_unique_ids(DeltacloudUnitTest::InstancesTest): .
> test_it_require_authentication(DeltacloudUnitTest::InstancesTest): .
> test_it_responses_to_html(DeltacloudUnitTest::InstancesTest): .
> test_it_responses_to_json(DeltacloudUnitTest::InstancesTest): .
> test_it_returns_instances(DeltacloudUnitTest::InstancesTest): .
> test_it_returns_valid_realm(DeltacloudUnitTest::InstancesTest): .
> test_it_z0_stop_and_start_instance(DeltacloudUnitTest::InstancesTest): .
> test_z0_reboot_instance(DeltacloudUnitTest::InstancesTest): .
> test_z1_stop_created_instances(DeltacloudUnitTest::InstancesTest): .
> test_z2_destroy_created_instances(DeltacloudUnitTest::InstancesTest): .
> test_each_state_has_transition(DeltacloudUnitTest::RealmsTest): .
> test_it_has_correct_attributes_set(DeltacloudUnitTest::RealmsTest): .
> test_it_has_unique_ids(DeltacloudUnitTest::RealmsTest): .
> test_it_not_require_authentication(DeltacloudUnitTest::RealmsTest): .
> test_it_responses_to_html(DeltacloudUnitTest::RealmsTest): .
> test_it_responses_to_json(DeltacloudUnitTest::RealmsTest): .
> test_it_responses_to_png(DeltacloudUnitTest::RealmsTest): .
> test_it_returns_instance_states(DeltacloudUnitTest::RealmsTest): .
> test_it_returns_realms(DeltacloudUnitTest::RealmsTest): .
> test_it_returns_valid_realm(DeltacloudUnitTest::RealmsTest): .
> test_us_has_correct_attributes(DeltacloudUnitTest::RealmsTest): .
> test_it_works_for_root(DeltacloudUnitTest::UrlForTest): .
> test_it_works_for_root_absolute(DeltacloudUnitTest::UrlForTest): .
> test_it_works_when_given_absolute(DeltacloudUnitTest::UrlForTest): .
> test_it_works_when_not_at_root_context(DeltacloudUnitTest::UrlForTest): .
> test_it_works_with_spaces(DeltacloudUnitTest::UrlForTest): .
>
> Finished in 1.785249 seconds.
>
> 1) Error:
> test_it_expose_ec2_driver_entrypoints(DeltacloudUnitTest::ApiTest):
> NoMethodError: undefined method `do_xml_request' for #<DeltacloudUnitTest::ApiTest:0xb73ee650>
> ./tests/../tests/drivers/mock/../../../tests/../tests/drivers/mock/../../../tests/drivers/mock/../../../tests/drivers/mock/../../../tests/drivers/mock/../../../tests/drivers/mock/api_test.rb:108:in `test_it_expose_ec2_driver_entrypoints'
>
> 65 tests, 0 assertions, 0 failures, 1 errors
> rake aborted!
> Command failed with status (1): [/usr/bin/ruby -I"lib" "/home/marios/.gem/r...]
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:995:in `sh'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1010:in `call'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1010:in `sh'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1094:in `sh'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1029:in `ruby'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1094:in `ruby'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake/testtask.rb:117:in `define'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1112:in `verbose'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake/testtask.rb:102:in `define'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain'
> /usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/bin/rake:31
> /usr/bin/rake:19:in `load'
> /usr/bin/rake:19
Fixed. I forget to change do_xml_request in one test. Now it should work perfectly.
> ====================================================================
>
> * rake test:rackspace gave 1 error, trace:
>
> [marios@marios server]$ rake test:rackspace --trace
> (in /home/marios/Documents/WORK/NewEclipsey/DCore/deltacloud/server)
> ** Invoke test:rackspace (first_time)
> ** Execute test:rackspace
> /usr/bin/ruby -I"lib" "/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "tests/common.rb" "tests/drivers/rackspace/setup.rb" "tests/drivers/rackspace/images_test.rb" "tests/drivers/rackspace/hardware_profiles_test.rb" "tests/drivers/rackspace/instances_test.rb" "tests/drivers/rackspace/api_test.rb" "tests/drivers/rackspace/realms_test.rb" -v -v
> Loaded suite /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader
> Started
> test_01_it_returns_entry_points(RackspaceTest::ApiTest): .
> test_02_it_has_rackspace_features(RackspaceTest::ApiTest): .
> test_03_it_has_rackspace_collections(RackspaceTest::ApiTest): F
> test_01_it_returns_hardware_profiles(RackspaceTest::HardwareProfilesTest): .
> test_02_each_hardware_profile_has_a_name(RackspaceTest::HardwareProfilesTest): .
> test_03_each_hardware_profile_has_correct_properties(RackspaceTest::HardwareProfilesTest): .
> test_04_it_returns_single_hardware_profile(RackspaceTest::HardwareProfilesTest): .
> test_05_it_filter_hardware_profiles(RackspaceTest::HardwareProfilesTest): .
> test_01_it_returns_images(RackspaceTest::ImagesTest): .
> test_02_each_image_has_correct_properties(RackspaceTest::ImagesTest): .
> test_03_it_returns_single_image(RackspaceTest::ImagesTest): .
> test_01_01_it_can_create_instance_without_hardware_profile(RackspaceTest::InstancesTest): .
> test_01_02_it_can_create_instance_with_hardware_profile(RackspaceTest::InstancesTest): .
> test_02_01_created_instance_has_correct_authentication(RackspaceTest::InstancesTest): .
> test_02_02_created_instance_has_correct_authentication(RackspaceTest::InstancesTest): .
> test_03_01_created_instance_has_correct_addresses(RackspaceTest::InstancesTest): .
> test_03_02_created_instance_has_correct_addresses(RackspaceTest::InstancesTest): .
> test_03_02_created_instance_has_correct_hardware_profile(RackspaceTest::InstancesTest): .
> test_04_01_created_instance_goes_to_running_state(RackspaceTest::InstancesTest): .
> test_04_02_created_instance_goes_to_running_state(RackspaceTest::InstancesTest): .
> test_05_01_created_instance_can_be_rebooted(RackspaceTest::InstancesTest): .
> test_06_01_created_instance_can_be_destroyed(RackspaceTest::InstancesTest): .
> test_06_02_created_instance_can_be_destroyed(RackspaceTest::InstancesTest): .
> test_01_it_returns_realms(RackspaceTest::RealmsTest): .
> test_02_each_realm_has_a_name(RackspaceTest::RealmsTest): .
> test_03_it_returns_single_realm(RackspaceTest::RealmsTest): .
>
> Finished in 99.356895 seconds.
>
> 1) Failure:
> test_03_it_has_rackspace_collections(RackspaceTest::ApiTest)
> [/usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/expectations/fail_with.rb:41:in `fail_with'
> /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/matchers/operator_matcher.rb:39:in `fail_with_message'
> /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/matchers/operator_matcher.rb:61:in `__delegate_operator'
> /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/matchers/operator_matcher.rb:51:in `eval_match'
> /usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/matchers/operator_matcher.rb:29:in `=='
> ./tests/../tests/drivers/rackspace/../../../tests/../tests/drivers/rackspace/../../../tests/drivers/rackspace/../../../tests/drivers/rackspace/api_test.rb:37:in `test_03_it_has_rackspace_collections']:
> expected: 6,
> got: 7 (using ==)
>
> 26 tests, 0 assertions, 1 failures, 0 errors
> rake aborted!
> Command failed with status (1): [/usr/bin/ruby -I"lib" "/home/marios/.gem/r...]
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:995:in `sh'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1010:in `call'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1010:in `sh'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1094:in `sh'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1029:in `ruby'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1094:in `ruby'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake/testtask.rb:117:in `define'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1112:in `verbose'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake/testtask.rb:102:in `define'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain'
> /usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
> /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/bin/rake:31
> /usr/bin/rake:19:in `load'
> /usr/bin/rake:19
Fixed as well. I just need to update test.
> ====================================================================
>
> * I had to install 'webmock' gem as well as vcr.
Yes, this is mentioned in Gemfile and should be mentioned also in gemspec
as *devel* dependency.
> * I wasn't sure if this version was actually 'speaking to' racksapace (i didn't get the usual e-mail about an instance having been started so probably not) - in any case it wasn't clear where to put creds until i looked at v3 of this series and saw you look at API_USER or API_PASSWORD environment variables in common.rb (I set these before running the test btw)
Your Rackspace credentials are completely ignored here, until you don't change the
c.default_cassette_options = { :record => :new_episodes }
in 'setup.rb'. If you change it to 'always' it will record new episodes (refresh mock data).
> marios
>
>
>
>> Create unit tests for drivers like Rackspace
>> --------------------------------------------
>>
>> Key: DTACLOUD-33
>> URL: https://issues.apache.org/jira/browse/DTACLOUD-33
>> Project: DeltaCloud
>> Issue Type: Improvement
>> Components: Server
>> Reporter: Michal Fojtik
>> Assignee: Michal Fojtik
>> Attachments: rackspace_unit_tests.patch.zip
>>
>>
>> Create set of unit tests for backend drivers
>
> --
> This message is automatically generated by JIRA.
> For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (DTACLOUD-33) Create unit tests for drivers like
Rackspace
Posted by "Marios Andreou (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/DTACLOUD-33?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13015880#comment-13015880 ]
Marios Andreou commented on DTACLOUD-33:
----------------------------------------
Hi Michal - thought I'd reply here since I used the patch attached here. Came across couple issues, comments below (seperated by '=======' for sanity):
====================================================================
* applies fine except for some whitespace errors (this is a non-issue but I put it here for your reference):
<stdin>:1466: trailing whitespace.
---
<stdin>:1467: trailing whitespace.
- !ruby/struct:VCR::HTTPInteraction
<stdin>:1468: trailing whitespace.
request: !ruby/struct:VCR::Request
<stdin>:1471: trailing whitespace.
body:
<stdin>:1472: trailing whitespace.
headers:
warning: squelched 1197 whitespace errors
warning: 1201 lines applied after fixing whitespace errors.
====================================================================
* rake test:mock gave me 1 error... trace:
[marios@marios server]$ rake test:mock --trace
(in /home/marios/Documents/WORK/NewEclipsey/DCore/deltacloud/server)
** Invoke test:mock (first_time)
** Execute test:mock
/usr/bin/ruby -I"lib" "/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "tests/common.rb" "tests/drivers/mock/setup.rb" "tests/drivers/mock/images_test.rb" "tests/drivers/mock/hardware_profiles_test.rb" "tests/drivers/mock/url_for_test.rb" "tests/drivers/mock/instance_states_test.rb" "tests/drivers/mock/instances_test.rb" "tests/drivers/mock/api_test.rb" "tests/drivers/mock/realms_test.rb" "tests/rabbit_test.rb" -v -v
Loaded suite /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
test_effective_params(DeltacloudUnitTest::ApiTest): .
test_it_allows_accessing_docs(DeltacloudUnitTest::ApiTest): .
test_it_change_features_after_driver_change(DeltacloudUnitTest::ApiTest): .
test_it_expose_available_drivers(DeltacloudUnitTest::ApiTest): .
test_it_expose_ec2_driver_entrypoints(DeltacloudUnitTest::ApiTest): E
test_it_handles_unsupported_collections(DeltacloudUnitTest::ApiTest): .
test_it_has_correct_attributes_set(DeltacloudUnitTest::ApiTest): .
test_it_respond_to_head(DeltacloudUnitTest::ApiTest): .
test_it_responses_to_html(DeltacloudUnitTest::ApiTest): .
test_it_responses_to_json(DeltacloudUnitTest::ApiTest): .
test_it_returns_entry_points(DeltacloudUnitTest::ApiTest): .
test_it_supports_matrix_params(DeltacloudUnitTest::ApiTest): .
test_it_switches_drivers(DeltacloudUnitTest::ApiTest): .
test_params(DeltacloudUnitTest::ApiTest): .
test_hardware_profiles_have_name(DeltacloudUnitTest::HardwareProfilesTest): .
test_hardware_profiles_have_unique_id(DeltacloudUnitTest::HardwareProfilesTest): .
test_hardware_profiles_have_unique_name(DeltacloudUnitTest::HardwareProfilesTest): .
test_img1_has_correct_attributes(DeltacloudUnitTest::HardwareProfilesTest): .
test_it_can_filter_using_architecture(DeltacloudUnitTest::HardwareProfilesTest): .
test_it_can_filter_using_owner_id(DeltacloudUnitTest::HardwareProfilesTest): .
test_it_can_filter_using_unknown_architecture(DeltacloudUnitTest::HardwareProfilesTest): .
test_it_can_filter_using_unknown_owner_id(DeltacloudUnitTest::HardwareProfilesTest): .
test_it_has_correct_attributes_set(DeltacloudUnitTest::HardwareProfilesTest): .
test_it_has_unique_ids(DeltacloudUnitTest::HardwareProfilesTest): .
test_it_has_valid_urls(DeltacloudUnitTest::HardwareProfilesTest): .
test_it_require_authentication(DeltacloudUnitTest::HardwareProfilesTest): .
test_it_responses_to_html(DeltacloudUnitTest::HardwareProfilesTest): .
test_it_responses_to_json(DeltacloudUnitTest::HardwareProfilesTest): .
test_it_returns_error_on_wrong_name(DeltacloudUnitTest::HardwareProfilesTest): .
test_it_returns_hardware_profiles(DeltacloudUnitTest::HardwareProfilesTest): .
test_it_returns_images(DeltacloudUnitTest::HardwareProfilesTest): .
test_it_returns_valid_hardware_profile(DeltacloudUnitTest::HardwareProfilesTest): .
test_it_returns_valid_image(DeltacloudUnitTest::HardwareProfilesTest): .
test_m1_xlarge_profile_has_correct_attributes(DeltacloudUnitTest::HardwareProfilesTest): .
test_inst1_has_correct_attributes(DeltacloudUnitTest::InstancesTest): .
test_it_create_a_new_instance_using_image_id(DeltacloudUnitTest::InstancesTest): .
test_it_create_a_new_instance_using_image_id_and_name(DeltacloudUnitTest::InstancesTest): .
test_it_create_a_new_instance_using_image_id_and_name_and_hwp(DeltacloudUnitTest::InstancesTest): .
test_it_has_correct_attributes_set(DeltacloudUnitTest::InstancesTest): .
test_it_has_unique_ids(DeltacloudUnitTest::InstancesTest): .
test_it_require_authentication(DeltacloudUnitTest::InstancesTest): .
test_it_responses_to_html(DeltacloudUnitTest::InstancesTest): .
test_it_responses_to_json(DeltacloudUnitTest::InstancesTest): .
test_it_returns_instances(DeltacloudUnitTest::InstancesTest): .
test_it_returns_valid_realm(DeltacloudUnitTest::InstancesTest): .
test_it_z0_stop_and_start_instance(DeltacloudUnitTest::InstancesTest): .
test_z0_reboot_instance(DeltacloudUnitTest::InstancesTest): .
test_z1_stop_created_instances(DeltacloudUnitTest::InstancesTest): .
test_z2_destroy_created_instances(DeltacloudUnitTest::InstancesTest): .
test_each_state_has_transition(DeltacloudUnitTest::RealmsTest): .
test_it_has_correct_attributes_set(DeltacloudUnitTest::RealmsTest): .
test_it_has_unique_ids(DeltacloudUnitTest::RealmsTest): .
test_it_not_require_authentication(DeltacloudUnitTest::RealmsTest): .
test_it_responses_to_html(DeltacloudUnitTest::RealmsTest): .
test_it_responses_to_json(DeltacloudUnitTest::RealmsTest): .
test_it_responses_to_png(DeltacloudUnitTest::RealmsTest): .
test_it_returns_instance_states(DeltacloudUnitTest::RealmsTest): .
test_it_returns_realms(DeltacloudUnitTest::RealmsTest): .
test_it_returns_valid_realm(DeltacloudUnitTest::RealmsTest): .
test_us_has_correct_attributes(DeltacloudUnitTest::RealmsTest): .
test_it_works_for_root(DeltacloudUnitTest::UrlForTest): .
test_it_works_for_root_absolute(DeltacloudUnitTest::UrlForTest): .
test_it_works_when_given_absolute(DeltacloudUnitTest::UrlForTest): .
test_it_works_when_not_at_root_context(DeltacloudUnitTest::UrlForTest): .
test_it_works_with_spaces(DeltacloudUnitTest::UrlForTest): .
Finished in 1.785249 seconds.
1) Error:
test_it_expose_ec2_driver_entrypoints(DeltacloudUnitTest::ApiTest):
NoMethodError: undefined method `do_xml_request' for #<DeltacloudUnitTest::ApiTest:0xb73ee650>
./tests/../tests/drivers/mock/../../../tests/../tests/drivers/mock/../../../tests/drivers/mock/../../../tests/drivers/mock/../../../tests/drivers/mock/../../../tests/drivers/mock/api_test.rb:108:in `test_it_expose_ec2_driver_entrypoints'
65 tests, 0 assertions, 0 failures, 1 errors
rake aborted!
Command failed with status (1): [/usr/bin/ruby -I"lib" "/home/marios/.gem/r...]
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:995:in `sh'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1010:in `call'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1010:in `sh'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1094:in `sh'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1029:in `ruby'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1094:in `ruby'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake/testtask.rb:117:in `define'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1112:in `verbose'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake/testtask.rb:102:in `define'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/bin/rake:31
/usr/bin/rake:19:in `load'
/usr/bin/rake:19
====================================================================
* rake test:rackspace gave 1 error, trace:
[marios@marios server]$ rake test:rackspace --trace
(in /home/marios/Documents/WORK/NewEclipsey/DCore/deltacloud/server)
** Invoke test:rackspace (first_time)
** Execute test:rackspace
/usr/bin/ruby -I"lib" "/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader.rb" "tests/common.rb" "tests/drivers/rackspace/setup.rb" "tests/drivers/rackspace/images_test.rb" "tests/drivers/rackspace/hardware_profiles_test.rb" "tests/drivers/rackspace/instances_test.rb" "tests/drivers/rackspace/api_test.rb" "tests/drivers/rackspace/realms_test.rb" -v -v
Loaded suite /home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake/rake_test_loader
Started
test_01_it_returns_entry_points(RackspaceTest::ApiTest): .
test_02_it_has_rackspace_features(RackspaceTest::ApiTest): .
test_03_it_has_rackspace_collections(RackspaceTest::ApiTest): F
test_01_it_returns_hardware_profiles(RackspaceTest::HardwareProfilesTest): .
test_02_each_hardware_profile_has_a_name(RackspaceTest::HardwareProfilesTest): .
test_03_each_hardware_profile_has_correct_properties(RackspaceTest::HardwareProfilesTest): .
test_04_it_returns_single_hardware_profile(RackspaceTest::HardwareProfilesTest): .
test_05_it_filter_hardware_profiles(RackspaceTest::HardwareProfilesTest): .
test_01_it_returns_images(RackspaceTest::ImagesTest): .
test_02_each_image_has_correct_properties(RackspaceTest::ImagesTest): .
test_03_it_returns_single_image(RackspaceTest::ImagesTest): .
test_01_01_it_can_create_instance_without_hardware_profile(RackspaceTest::InstancesTest): .
test_01_02_it_can_create_instance_with_hardware_profile(RackspaceTest::InstancesTest): .
test_02_01_created_instance_has_correct_authentication(RackspaceTest::InstancesTest): .
test_02_02_created_instance_has_correct_authentication(RackspaceTest::InstancesTest): .
test_03_01_created_instance_has_correct_addresses(RackspaceTest::InstancesTest): .
test_03_02_created_instance_has_correct_addresses(RackspaceTest::InstancesTest): .
test_03_02_created_instance_has_correct_hardware_profile(RackspaceTest::InstancesTest): .
test_04_01_created_instance_goes_to_running_state(RackspaceTest::InstancesTest): .
test_04_02_created_instance_goes_to_running_state(RackspaceTest::InstancesTest): .
test_05_01_created_instance_can_be_rebooted(RackspaceTest::InstancesTest): .
test_06_01_created_instance_can_be_destroyed(RackspaceTest::InstancesTest): .
test_06_02_created_instance_can_be_destroyed(RackspaceTest::InstancesTest): .
test_01_it_returns_realms(RackspaceTest::RealmsTest): .
test_02_each_realm_has_a_name(RackspaceTest::RealmsTest): .
test_03_it_returns_single_realm(RackspaceTest::RealmsTest): .
Finished in 99.356895 seconds.
1) Failure:
test_03_it_has_rackspace_collections(RackspaceTest::ApiTest)
[/usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/expectations/fail_with.rb:41:in `fail_with'
/usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/matchers/operator_matcher.rb:39:in `fail_with_message'
/usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/matchers/operator_matcher.rb:61:in `__delegate_operator'
/usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/matchers/operator_matcher.rb:51:in `eval_match'
/usr/lib/ruby/gems/1.8/gems/rspec-1.3.0/lib/spec/matchers/operator_matcher.rb:29:in `=='
./tests/../tests/drivers/rackspace/../../../tests/../tests/drivers/rackspace/../../../tests/drivers/rackspace/../../../tests/drivers/rackspace/api_test.rb:37:in `test_03_it_has_rackspace_collections']:
expected: 6,
got: 7 (using ==)
26 tests, 0 assertions, 1 failures, 0 errors
rake aborted!
Command failed with status (1): [/usr/bin/ruby -I"lib" "/home/marios/.gem/r...]
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:995:in `sh'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1010:in `call'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1010:in `sh'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1094:in `sh'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1029:in `ruby'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1094:in `ruby'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake/testtask.rb:117:in `define'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1112:in `verbose'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake/testtask.rb:102:in `define'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `call'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:636:in `execute'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `each'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:631:in `execute'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:597:in `invoke_with_call_chain'
/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:590:in `invoke_with_call_chain'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:583:in `invoke'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2051:in `invoke_task'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `each'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2029:in `top_level'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2023:in `top_level'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2001:in `run'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/home/marios/.gem/ruby/1.8/gems/rake-0.8.7/bin/rake:31
/usr/bin/rake:19:in `load'
/usr/bin/rake:19
====================================================================
* I had to install 'webmock' gem as well as vcr.
* I wasn't sure if this version was actually 'speaking to' racksapace (i didn't get the usual e-mail about an instance having been started so probably not) - in any case it wasn't clear where to put creds until i looked at v3 of this series and saw you look at API_USER or API_PASSWORD environment variables in common.rb (I set these before running the test btw)
marios
> Create unit tests for drivers like Rackspace
> --------------------------------------------
>
> Key: DTACLOUD-33
> URL: https://issues.apache.org/jira/browse/DTACLOUD-33
> Project: DeltaCloud
> Issue Type: Improvement
> Components: Server
> Reporter: Michal Fojtik
> Assignee: Michal Fojtik
> Attachments: rackspace_unit_tests.patch.zip
>
>
> Create set of unit tests for backend drivers
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
[jira] [Commented] (DTACLOUD-33) Create unit tests for drivers like
Rackspace
Posted by "Marios Andreou (JIRA)" <ji...@apache.org>.
[ https://issues.apache.org/jira/browse/DTACLOUD-33?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13016048#comment-13016048 ]
Marios Andreou commented on DTACLOUD-33:
----------------------------------------
ack: I didn't really do much code inspection - only comment is to add the usual license headers to the various test classes (you have them in mock tests but not rax tests)
rake tests:mock
Finished in 2.00153 seconds.
65 tests, 0 assertions, 0 failures, 0 errors
rake test:rackspace
Finished in 96.931024 seconds.
26 tests, 0 assertions, 0 failures, 0 errors
then i changed server/tests/rackspace/setup.rb:12 c.default_cassette_options = { :record => :all } and ran against rax:
rake test:rackspace
Finished in 181.655529 seconds.
26 tests, 0 assertions, 0 failures, 0 errors
> Create unit tests for drivers like Rackspace
> --------------------------------------------
>
> Key: DTACLOUD-33
> URL: https://issues.apache.org/jira/browse/DTACLOUD-33
> Project: DeltaCloud
> Issue Type: Improvement
> Components: Server
> Reporter: Michal Fojtik
> Assignee: Michal Fojtik
> Attachments: rackspace_tests_rev2.zip, rackspace_unit_tests.patch.zip
>
>
> Create set of unit tests for backend drivers
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira