Make get_repositories filter on the server side
Review Request #7817 — Created Dec. 21, 2015 and submitted
Change the call to server.get_repositories to filter on the server side
based on the VCS type inside the clients.We have over 3000 git repos in our instance (but significantly less SVN
repos) and have people working overseas from our RB instance causing
over 100 network call roundtrips. This reduces those extra calls to
the single digits.
I've tested manually by digging into the Rest API, code review, and
manual testing at LinkedIn. We have forked rbtools internally to deploy
this patch also.Ran Unit tests:
Ran 167 tests in 39.185s
OK (SKIP=28)
-
Thanks for the patch! This looks good, but I have a few nitpicks for you.
Also could you please format your summary to be <= 50 chars long and your description + testing done to be wrapped at 72 chars? Your summary + description will end up as the commit message and git prefers those limits for the message.
Could you also verify the unit tests passed with this change?
Thanks again!
-
-
- Change Summary:
-
Updated Summary, description, and testing done. Including unit test run.
- Summary:
-
Change the call to server.get_repositories to filter on the server side based on the VCS type inside the clientsMake get_repositories filter on the server side
- Description:
-
~ Change the call to server.get_repositories to filter on the server side based on the VCS type inside the clients.
~ Change the call to server.get_repositories to filter on the server side
+ based on the VCS type inside the clients. ~ We have over 3000 git repos in our instance (but significantly less SVN repos) and have people working overseas from our RB instance causing over 100 network call roundtrips. This reduces those extra calls to the single digits.
~ ~ This patch is based on Line 128 of.
~ https://github.com/reviewboard/reviewboard/blob/master/reviewboard/webapi/resources/repository.py ~ We have over 3000 git repos in our instance (but significantly less SVN
~ repos) and have people working overseas from our RB instance causing ~ over 100 network call roundtrips. This reduces those extra calls to ~ the single digits. - Testing Done:
-
~ I've tested manually by digging into the Rest API, code review, and manual testing at LinkedIn. We have forked rbtools internally to deploy this patch also.
~ I've tested manually by digging into the Rest API, code review, and
+ manual testing at LinkedIn. We have forked rbtools internally to deploy + this patch also. + + nose.config: INFO: Ignoring files matching ['^\.', '^_', '^setup\.py$']
+ nose.selector: INFO: /home/solarmist/builds/rbtools/rbtools/utils/appdirs.py is executable; skipped + Testing the cache with a high max-age value ... ok + Testing the cache with a zero max-age value ... ok + Testing the cache with the must-revalidate control ... ok + Testing the cache with the no-store control ... ok + Testing the cache with the no-cache control ... ok + Testing the cache with the no-cache control and a specified ETag ... ok + Testing the cache with the no-cache control and an updated ETag ... ok + Testing the cache with the no-cache control ... ok + Testing the cache with the no-cache control and an updated Last-Modified header ... ok + Testing the cache with the Expires header in the past ... ok + Testing the cache with the Expires header in the future ... ok + Testing the cache with an Expires header that is overridden ... ok + Testing the cache with the Pragma: no-cache header ... ok + Testing writing to the cache with non-ASCII data ... ok + Testing the cache with the Vary header ... ok + Testing the cache with the Vary header and different requests ... ok + Testing Capabilities.has_capability with supported capability ... ok + Testing Capabilities.has_capability with partial capability path ... ok + Testing Capabilities.has_capability with unknown capability ... ok + Testing the default values. ... ok + Testing the multipart form data generation. ... ok + Testing the encoding of multipart form data with unicode and binary field data ... ok + Testing constructing a count resource. ... ok + Testing constructing an item resource. ... ok + Testing constructing a list resource. ... ok + Testing constructing without guessing the resource token. ... ok + Testing constructing a resource with a specific base class. ... ok + Testing guessing the resource's token. ... ok + Testing item resource fields. ... ok + Testing item resource link generation. ... ok + Testing access of a link field. ... ok + Testing link resource link generation. ... ok + Testing list resource lists. ... ok + Testing access of a dictionary field. ... ok + Testing iterating sub-fields of a dictionary field. ... ok + Testing generation of methods for the root resource uri templates. ... ok + Testing ReviewRequestResource.absolute_url with 'absolute_url' field ... ok + Testing ReviewRequestResource.absolute_url with generated fallback URL ... ok + Testing ReviewRequestResource.absolute_url with 'url' field ... ok + Testing BazaarClient diff with file exclusion. ... SKIP: bzr not found in path + Testing BazaarClient diff with file exclusion in a subdirectory. ... SKIP: bzr not found in path + Testing BazaarClient diff with file exclusion in the repo root. ... SKIP: bzr not found in path + Testing BazaarClient diff with changes between a 2nd level descendant ... SKIP: bzr not found in path + Testing BazaarClient diff with changes only in the parent branch ... SKIP: bzr not found in path + Testing BazaarClient simple diff case ... SKIP: bzr not found in path + Testing BazaarClient simple diff with multiple commits case ... SKIP: bzr not found in path + Testing BazaarClient diff with specific files ... SKIP: bzr not found in path + Testing BazaarClient get_repository_info with child branch ... SKIP: bzr not found in path + Testing BazaarClient get_repository_info, no branch ... SKIP: bzr not found in path + Testing BazaarClient get_repository_info with original branch ... SKIP: bzr not found in path + Testing BazaarClient guessing summary and description ... SKIP: bzr not found in path + Testing BazaarClient guessing summary and description for grand parent branch. ... SKIP: bzr not found in path + Testing BazaarClient guessing summary and description with a revision range. ... SKIP: bzr not found in path + Testing BazaarClient.parse_revision_spec with no specified revisions ... SKIP: bzr not found in path + Testing BazaarClient.parse_revision_spec with one specified revision ... SKIP: bzr not found in path + Testing BazaarClient.parse_revision_spec with one specified revision and a parent diff ... SKIP: bzr not found in path + Testing BazaarClient.parse_revision_spec with R1..R2 syntax ... SKIP: bzr not found in path + Testing BazaarClient.parse_revision_spec with two revisions ... SKIP: bzr not found in path + Testing BazaarClient parse_revision_spec with too many revisions ... SKIP: bzr not found in path + Testing GitClient diff with divergent branches ... ok + Testing GitClient simple diff with file exclusion. ... ok + Testing GitClient simple diff with file exclusion in a subdir ... ok + Testing GitClient diff with file exclusion in the repo root. ... ok + Testing GitClient diff with a local tracking branch ... ok + Testing GitClient simple diff case ... ok + Testing GitClient simple diff with multiple commits case ... ok + Testing GitClient diff with tracking branch that has slash in its name. ... ok + Testing GitClient diff with a tracking branch, but no origin remote ... ok + Testing GitClient diff with option override for tracking branch ... ok + Testing GitClient.get_raw_commit_message ... ok + Testing GitClient get_repository_info, simple case ... ok + Testing GitClient.parse_revision_spec with no specified revisions ... ok + Testing GitClient.parse_revision_spec with no specified revisions and a parent diff ... ok + Testing GitClient.parse_revision_spec with one specified revision ... ok + Testing GitClient.parse_revision_spec with one specified revision and a parent diff ... ok + Testing GitClient.parse_revision_spec with diff-since-merge syntax ... ok + Testing GitClient.parse_revision_spec with diff-since syntax ... ok + Testing GitClient.parse_revision_spec with two specified revisions ... ok + Testing GitClient scan_for_server using repo property ... ok + Testing GitClient scan_for_server, .reviewboardrc case ... ok + Testing GitClient scan_for_server, simple case ... ok + Testing GitClient parse_revision_spec with too many revisions ... ok + Testing MercurialClient diff with diverged branch ... ok + Testing MercurialClient diff with file exclusion. ... ok + Testing MercurialClient diff with empty file exclusion. ... ok + Testing MercurialClient parent diffs with a diverged branch ... ok + Testing MercurialClient parent diffs with a simple case ... ok + Testing MercurialClient parent diffs with a diverged branch and --parent option ... ok + Testing MercurialClient diff, simple case ... ok + Testing MercurialClient diff with multiple commits ... ok + Testing MercurialClient get_repository_info, simple case ... ok + Testing MercurialClient guess summary & description 1 commit. ... ok + Testing MercurialClient guess summary & description middle commit commit. ... ok + Testing MercurialClient guess summary & description 3 commits. ... ok + Testing MercurialClient guess summary & description 2 commits. ... ok + Testing MercurialClient.parse_revision_spec with no arguments ... ok + Testing MercurialClient.parse_revision_spec with one revision ... ok + Testing MercurialClient.parse_revision_spec with r1::r2 syntax ... ok + Testing MercurialClient.parse_revision_spec with r1..r2 syntax ... ok + Testing MercurialClient.parse_revision_spec with parent base ... ok + Testing MercurialClient.parse_revision_spec with two revisions ... ok + Testing MercurialClient scan_for_server when in .reviewboardrc ... ok + Testing MercurialClient scan_for_server, simple case ... ok + Testing MercurialClient scan_for_server when present in hgrc ... ok + Testing MercurialClient (+svn) _calculate_hgsubversion_repository_info properly determines repository and base paths. ... SKIP: unable to use hgsubversion
extension! giving up!+ Testing MercurialClient (+svn) diff specifying a revision. ... SKIP: unable to use hgsubversion
extension! giving up!+ Testing MercurialClient (+svn) diff, simple case ... SKIP: unable to use hgsubversion
extension! giving up!+ Testing MercurialClient (+svn) diff with multiple commits ... SKIP: unable to use hgsubversion
extension! giving up!+ Testing MercurialClient (+svn) get_repository_info, simple case ... SKIP: unable to use hgsubversion
extension! giving up!+ Testing MercurialClient (+svn) scan_for_server in svn property ... SKIP: unable to use hgsubversion
extension! giving up!+ Testing MercurialClient (+svn) scan_for_server in .reviewboardrc ... SKIP: unable to use hgsubversion
extension! giving up!+ Testing MercurialClient (+svn) scan_for_server, simple case ... SKIP: unable to use hgsubversion
extension! giving up!+ Testing P4Wrapper.counters ... ok + Testing P4Wrapper.info ... ok + Testing PerforceClient.normalize_exclude_patterns ... ok + Testing PerforceClient.diff with a submitted changelist ... ok + Testing PerforceClient.diff with moved files and capability off ... ok + Testing PerforceClient.diff with moved files and capability on ... ok + Testing PerforceClient.diff with a pending changelist ... ok + Testing PerforceClient.parse_revision_spec with invalid specifications ... ok + Testing PerforceClient.parse_revision_spec with no specified revisions ... ok + Testing PerforceClient.parse_revision_spec with a pending changelist ... ok + Testing PerforceClient.parse_revision_spec with a shelved changelist ... ok + Testing PerforceClient.parse_revision_spec with a submitted changelist ... ok + Testing PerforceClient.parse_revision_spec with two changelists ... ok + Testing PerforceClient.get_repository_info ... ok + Testing PerforceClient.get_repository_info outside client root ... ok + Testing PerforceClient.scan_for_server_counter with reviewboard.url ... ok + Testing PerforceClient.scan_for_server_counter with encoded reviewboard.url.http:|| ... ok + Testing SVNClient diff with file exclude patterns ... ok + Testing SVNClient diff with exclude patterns in a subdir ... ok + Testing SVNClient diff with repo exclude patterns in a subdir ... ok + Testing SVNClient diff with a non-utf8 file ... ok + Testing SVNClient diff with a non-utf8 filename ... ok + Testing SVNClient diff with a non-utf8 filename via repository_url option ... ok + Testing SVNClient.history_scheduled_with_commit nominal cases ... ok + Testing SVNClient.history_scheduled_with_commit with exclude file ... ok + Testing SVNClient.history_scheduled_with_commit is bypassed when diff is not for local modifications in a working copy ... ok + Testing SVNClient.parse_revision_spec with invalid specifications ... ok + Testing SVNClient.parse_revision_spec with no specified revisions ... ok + Testing SVNClient.parse_revision_spec with a non-utf8 log entry ... ok + Testing SVNClient.parse_revision_spec with R1:R2 syntax ... ok + Testing SVNClient.parse_revision_spec with one specified numeric revision ... ok + Testing SVNClient.parse_revision_spec with one specified changelist revision ... ok + Testing SVNClient.parse_revision_spec with one specified invalid changelist revision ... ok + Testing SVNClient.parse_revision_spec with one revision and a repository URL ... ok + Testing SVNClient.parse_revision_spec with two revisions ... ok + Testing SVNClient.parse_revision_spec with R1:R2 syntax and a repository URL ... ok + Testing SVNRepositoryInfo._get_relative_path ... ok + Testing SVNClient identical diff generated from root, subdirectory, and via target ... ok + Testing SVNClient with --show-copies-as-adds functionality disabled ... ok + Testing SVNClient with --show-copies-as-adds functionality enabled ... ok + Testing variable substitution with alphabetic variables ... ok + Testing alias substitution with a slash at the end of the string ... ok + Testing variable substitution where no variables are supplied ... ok + Testing alias substitution with bad quotes. ... ok + Testing variable substitution in rbtools aliases ... ok + Testing variable substitution where the argument isn't supplied ... ok + Testing variable substitution with the $ variable ... ok + Testing $ variable substitution with whitespace-containing args ... ok + Testing variable substitution where multiple variables appear ... ok + Testing 'check_install' method. ... ok + Testing 'die' method. ... ok + Testing 'execute' method. ... ok + Testing 'is_valid_version' method. ... ok + Testing 'make_empty_files' method. ... ok + Testing 'make_tempfile' method. ... ok + + + + Ran 167 tests in 39.185s
+ + OK (SKIP=28)
-
Tool: Pyflakes Processed Files: rbtools/clients/clearcase.py rbtools/clients/svn.py Tool: PEP8 Style Checker Processed Files: rbtools/clients/clearcase.py rbtools/clients/svn.py
-
Please don't include the entire output of the tests in the testing done. "Ran unit tests" is sufficient.
- Change Summary:
-
Removed unit test output.
- Testing Done:
-
I've tested manually by digging into the Rest API, code review, and
manual testing at LinkedIn. We have forked rbtools internally to deploy this patch also. ~ nose.config: INFO: Ignoring files matching ['^\.', '^_', '^setup\.py$']
~ nose.selector: INFO: /home/solarmist/builds/rbtools/rbtools/utils/appdirs.py is executable; skipped ~ Testing the cache with a high max-age value ... ok ~ Ran Unit tests:
~ Ran 167 tests in 39.185s ~ OK (SKIP=28) - Testing the cache with a zero max-age value ... ok - Testing the cache with the must-revalidate control ... ok - Testing the cache with the no-store control ... ok - Testing the cache with the no-cache control ... ok - Testing the cache with the no-cache control and a specified ETag ... ok - Testing the cache with the no-cache control and an updated ETag ... ok - Testing the cache with the no-cache control ... ok - Testing the cache with the no-cache control and an updated Last-Modified header ... ok - Testing the cache with the Expires header in the past ... ok - Testing the cache with the Expires header in the future ... ok - Testing the cache with an Expires header that is overridden ... ok - Testing the cache with the Pragma: no-cache header ... ok - Testing writing to the cache with non-ASCII data ... ok - Testing the cache with the Vary header ... ok - Testing the cache with the Vary header and different requests ... ok - Testing Capabilities.has_capability with supported capability ... ok - Testing Capabilities.has_capability with partial capability path ... ok - Testing Capabilities.has_capability with unknown capability ... ok - Testing the default values. ... ok - Testing the multipart form data generation. ... ok - Testing the encoding of multipart form data with unicode and binary field data ... ok - Testing constructing a count resource. ... ok - Testing constructing an item resource. ... ok - Testing constructing a list resource. ... ok - Testing constructing without guessing the resource token. ... ok - Testing constructing a resource with a specific base class. ... ok - Testing guessing the resource's token. ... ok - Testing item resource fields. ... ok - Testing item resource link generation. ... ok - Testing access of a link field. ... ok - Testing link resource link generation. ... ok - Testing list resource lists. ... ok - Testing access of a dictionary field. ... ok - Testing iterating sub-fields of a dictionary field. ... ok - Testing generation of methods for the root resource uri templates. ... ok - Testing ReviewRequestResource.absolute_url with 'absolute_url' field ... ok - Testing ReviewRequestResource.absolute_url with generated fallback URL ... ok - Testing ReviewRequestResource.absolute_url with 'url' field ... ok - Testing BazaarClient diff with file exclusion. ... SKIP: bzr not found in path - Testing BazaarClient diff with file exclusion in a subdirectory. ... SKIP: bzr not found in path - Testing BazaarClient diff with file exclusion in the repo root. ... SKIP: bzr not found in path - Testing BazaarClient diff with changes between a 2nd level descendant ... SKIP: bzr not found in path - Testing BazaarClient diff with changes only in the parent branch ... SKIP: bzr not found in path - Testing BazaarClient simple diff case ... SKIP: bzr not found in path - Testing BazaarClient simple diff with multiple commits case ... SKIP: bzr not found in path - Testing BazaarClient diff with specific files ... SKIP: bzr not found in path - Testing BazaarClient get_repository_info with child branch ... SKIP: bzr not found in path - Testing BazaarClient get_repository_info, no branch ... SKIP: bzr not found in path - Testing BazaarClient get_repository_info with original branch ... SKIP: bzr not found in path - Testing BazaarClient guessing summary and description ... SKIP: bzr not found in path - Testing BazaarClient guessing summary and description for grand parent branch. ... SKIP: bzr not found in path - Testing BazaarClient guessing summary and description with a revision range. ... SKIP: bzr not found in path - Testing BazaarClient.parse_revision_spec with no specified revisions ... SKIP: bzr not found in path - Testing BazaarClient.parse_revision_spec with one specified revision ... SKIP: bzr not found in path - Testing BazaarClient.parse_revision_spec with one specified revision and a parent diff ... SKIP: bzr not found in path - Testing BazaarClient.parse_revision_spec with R1..R2 syntax ... SKIP: bzr not found in path - Testing BazaarClient.parse_revision_spec with two revisions ... SKIP: bzr not found in path - Testing BazaarClient parse_revision_spec with too many revisions ... SKIP: bzr not found in path - Testing GitClient diff with divergent branches ... ok - Testing GitClient simple diff with file exclusion. ... ok - Testing GitClient simple diff with file exclusion in a subdir ... ok - Testing GitClient diff with file exclusion in the repo root. ... ok - Testing GitClient diff with a local tracking branch ... ok - Testing GitClient simple diff case ... ok - Testing GitClient simple diff with multiple commits case ... ok - Testing GitClient diff with tracking branch that has slash in its name. ... ok - Testing GitClient diff with a tracking branch, but no origin remote ... ok - Testing GitClient diff with option override for tracking branch ... ok - Testing GitClient.get_raw_commit_message ... ok - Testing GitClient get_repository_info, simple case ... ok - Testing GitClient.parse_revision_spec with no specified revisions ... ok - Testing GitClient.parse_revision_spec with no specified revisions and a parent diff ... ok - Testing GitClient.parse_revision_spec with one specified revision ... ok - Testing GitClient.parse_revision_spec with one specified revision and a parent diff ... ok - Testing GitClient.parse_revision_spec with diff-since-merge syntax ... ok - Testing GitClient.parse_revision_spec with diff-since syntax ... ok - Testing GitClient.parse_revision_spec with two specified revisions ... ok - Testing GitClient scan_for_server using repo property ... ok - Testing GitClient scan_for_server, .reviewboardrc case ... ok - Testing GitClient scan_for_server, simple case ... ok - Testing GitClient parse_revision_spec with too many revisions ... ok - Testing MercurialClient diff with diverged branch ... ok - Testing MercurialClient diff with file exclusion. ... ok - Testing MercurialClient diff with empty file exclusion. ... ok - Testing MercurialClient parent diffs with a diverged branch ... ok - Testing MercurialClient parent diffs with a simple case ... ok - Testing MercurialClient parent diffs with a diverged branch and --parent option ... ok - Testing MercurialClient diff, simple case ... ok - Testing MercurialClient diff with multiple commits ... ok - Testing MercurialClient get_repository_info, simple case ... ok - Testing MercurialClient guess summary & description 1 commit. ... ok - Testing MercurialClient guess summary & description middle commit commit. ... ok - Testing MercurialClient guess summary & description 3 commits. ... ok - Testing MercurialClient guess summary & description 2 commits. ... ok - Testing MercurialClient.parse_revision_spec with no arguments ... ok - Testing MercurialClient.parse_revision_spec with one revision ... ok - Testing MercurialClient.parse_revision_spec with r1::r2 syntax ... ok - Testing MercurialClient.parse_revision_spec with r1..r2 syntax ... ok - Testing MercurialClient.parse_revision_spec with parent base ... ok - Testing MercurialClient.parse_revision_spec with two revisions ... ok - Testing MercurialClient scan_for_server when in .reviewboardrc ... ok - Testing MercurialClient scan_for_server, simple case ... ok - Testing MercurialClient scan_for_server when present in hgrc ... ok - Testing MercurialClient (+svn) _calculate_hgsubversion_repository_info properly determines repository and base paths. ... SKIP: unable to use hgsubversion
extension! giving up!- Testing MercurialClient (+svn) diff specifying a revision. ... SKIP: unable to use hgsubversion
extension! giving up!- Testing MercurialClient (+svn) diff, simple case ... SKIP: unable to use hgsubversion
extension! giving up!- Testing MercurialClient (+svn) diff with multiple commits ... SKIP: unable to use hgsubversion
extension! giving up!- Testing MercurialClient (+svn) get_repository_info, simple case ... SKIP: unable to use hgsubversion
extension! giving up!- Testing MercurialClient (+svn) scan_for_server in svn property ... SKIP: unable to use hgsubversion
extension! giving up!- Testing MercurialClient (+svn) scan_for_server in .reviewboardrc ... SKIP: unable to use hgsubversion
extension! giving up!- Testing MercurialClient (+svn) scan_for_server, simple case ... SKIP: unable to use hgsubversion
extension! giving up!- Testing P4Wrapper.counters ... ok - Testing P4Wrapper.info ... ok - Testing PerforceClient.normalize_exclude_patterns ... ok - Testing PerforceClient.diff with a submitted changelist ... ok - Testing PerforceClient.diff with moved files and capability off ... ok - Testing PerforceClient.diff with moved files and capability on ... ok - Testing PerforceClient.diff with a pending changelist ... ok - Testing PerforceClient.parse_revision_spec with invalid specifications ... ok - Testing PerforceClient.parse_revision_spec with no specified revisions ... ok - Testing PerforceClient.parse_revision_spec with a pending changelist ... ok - Testing PerforceClient.parse_revision_spec with a shelved changelist ... ok - Testing PerforceClient.parse_revision_spec with a submitted changelist ... ok - Testing PerforceClient.parse_revision_spec with two changelists ... ok - Testing PerforceClient.get_repository_info ... ok - Testing PerforceClient.get_repository_info outside client root ... ok - Testing PerforceClient.scan_for_server_counter with reviewboard.url ... ok - Testing PerforceClient.scan_for_server_counter with encoded reviewboard.url.http:|| ... ok - Testing SVNClient diff with file exclude patterns ... ok - Testing SVNClient diff with exclude patterns in a subdir ... ok - Testing SVNClient diff with repo exclude patterns in a subdir ... ok - Testing SVNClient diff with a non-utf8 file ... ok - Testing SVNClient diff with a non-utf8 filename ... ok - Testing SVNClient diff with a non-utf8 filename via repository_url option ... ok - Testing SVNClient.history_scheduled_with_commit nominal cases ... ok - Testing SVNClient.history_scheduled_with_commit with exclude file ... ok - Testing SVNClient.history_scheduled_with_commit is bypassed when diff is not for local modifications in a working copy ... ok - Testing SVNClient.parse_revision_spec with invalid specifications ... ok - Testing SVNClient.parse_revision_spec with no specified revisions ... ok - Testing SVNClient.parse_revision_spec with a non-utf8 log entry ... ok - Testing SVNClient.parse_revision_spec with R1:R2 syntax ... ok - Testing SVNClient.parse_revision_spec with one specified numeric revision ... ok - Testing SVNClient.parse_revision_spec with one specified changelist revision ... ok - Testing SVNClient.parse_revision_spec with one specified invalid changelist revision ... ok - Testing SVNClient.parse_revision_spec with one revision and a repository URL ... ok - Testing SVNClient.parse_revision_spec with two revisions ... ok - Testing SVNClient.parse_revision_spec with R1:R2 syntax and a repository URL ... ok - Testing SVNRepositoryInfo._get_relative_path ... ok - Testing SVNClient identical diff generated from root, subdirectory, and via target ... ok - Testing SVNClient with --show-copies-as-adds functionality disabled ... ok - Testing SVNClient with --show-copies-as-adds functionality enabled ... ok - Testing variable substitution with alphabetic variables ... ok - Testing alias substitution with a slash at the end of the string ... ok - Testing variable substitution where no variables are supplied ... ok - Testing alias substitution with bad quotes. ... ok - Testing variable substitution in rbtools aliases ... ok - Testing variable substitution where the argument isn't supplied ... ok - Testing variable substitution with the $ variable ... ok - Testing $ variable substitution with whitespace-containing args ... ok - Testing variable substitution where multiple variables appear ... ok - Testing 'check_install' method. ... ok - Testing 'die' method. ... ok - Testing 'execute' method. ... ok - Testing 'is_valid_version' method. ... ok - Testing 'make_empty_files' method. ... ok - Testing 'make_tempfile' method. ... ok - - - - Ran 167 tests in 39.185s
- - OK (SKIP=28)