test_launcher 2.1.0 → 2.2.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ee375d2d54fa4515002e279d1be2d1311265ef15
4
- data.tar.gz: 45d2b818b60b50a9b1a973b41cba18ad49d79518
3
+ metadata.gz: f991a1c539b38368a85a9f61ab2a0cb63043b715
4
+ data.tar.gz: '09fa671d444c7f6d25ace960d958d8e72aee2a53'
5
5
  SHA512:
6
- metadata.gz: a2eba4180a96e7ddb178ff3516106cb1ad600782f864b8c0f5125cc19950610e3d593d99bf1f6febbf690d3bb3346096953061928682a34f76bb1084b27525c1
7
- data.tar.gz: 9452932c5136e3fd33d7616c65d33d52a992df0e1f397e7618a2180c1eaa2b6f8c20dfce23eec1053420a18cbb279e57bff83226b4c4e408212ac60cd55b792a
6
+ metadata.gz: 6216a818f743b22661e4318f14a27d0768db9de86aa6ea009a432c1734feb33adbc9895e345a856f9428bb4052a76b0843cba5dfa6b28a1600cca95b00f196b9
7
+ data.tar.gz: d427d0feec470480453ad91c55c24271e1573773d3ca7f32c87a43dc85ebd671b020bafd5d5a6299ba44d129ffecd5e3d731d363dc466b4f504b432f85150efe
@@ -29,10 +29,6 @@ module TestLauncher
29
29
  commandify(FullRegexQuery)
30
30
  end
31
31
 
32
- def single_search_term
33
- commandify(SingleTermQuery)
34
- end
35
-
36
32
  def full_search
37
33
  commandify(SearchQuery)
38
34
  end
@@ -143,6 +139,7 @@ module TestLauncher
143
139
 
144
140
  class MultiPathQuery < BaseQuery
145
141
  def command
142
+ return unless request.search_string.include?(" ")
146
143
  return if test_cases.empty?
147
144
 
148
145
  shell.notify("Found #{pluralize(file_count, "file")}.")
@@ -343,7 +340,8 @@ module TestLauncher
343
340
  LINE_SPLIT_REGEX = /\A(?<file>.*):(?<line_number>\d+)\Z/
344
341
 
345
342
  def command
346
- return unless search_results.any?
343
+ return unless match
344
+ return unless test_cases.any?
347
345
 
348
346
  if one_file?
349
347
  shell.notify "Found #{pluralize(file_count, "file")}."
@@ -368,7 +366,6 @@ module TestLauncher
368
366
 
369
367
  def search_results
370
368
  @search_results ||= begin
371
- match = request.search_string.match(LINE_SPLIT_REGEX)
372
369
  if match
373
370
  searcher.by_line(match[:file], match[:line_number].to_i)
374
371
  else
@@ -376,33 +373,22 @@ module TestLauncher
376
373
  end
377
374
  end
378
375
  end
376
+
377
+ def match
378
+ @match ||= request.search_string.match(LINE_SPLIT_REGEX)
379
+ end
379
380
  end
380
381
 
381
- class SingleTermQuery < BaseQuery
382
+ class SearchQuery < BaseQuery
382
383
  def command
383
384
  [
385
+ :line_number,
384
386
  :by_path,
387
+ :multi_path_query,
385
388
  :example_name,
386
389
  :multi_example_name,
387
390
  :from_full_regex,
388
- ]
389
- .each { |command_type|
390
- command = command_finder.public_send(command_type)
391
- return command if command
392
- }
393
- nil
394
- end
395
- end
396
-
397
- class SearchQuery < BaseQuery
398
- def command
399
- {
400
- multi_path_query: request.search_string.include?(" "),
401
- line_number: request.search_string.include?(":"),
402
- single_search_term: true
403
- }.each {|command_type, valid|
404
- next unless valid
405
-
391
+ ].each {|command_type|
406
392
  command = command_finder.public_send(command_type)
407
393
  return command if command
408
394
  }
@@ -4,15 +4,15 @@ require 'test_launcher/search/git'
4
4
  module TestLauncher
5
5
  module Search
6
6
  def self.searcher(shell)
7
- `which ag`
8
- implementation =
9
- if $?.success?
10
- Search::Ag
11
- else
12
- Search::Git
13
- end
7
+ # `which ag`
8
+ # implementation =
9
+ # if $?.success?
10
+ # Search::Ag
11
+ # else
12
+ # Search::Git
13
+ # end
14
14
 
15
- implementation.new(shell)
15
+ Search::Git.new(shell)
16
16
  end
17
17
  end
18
18
  end
@@ -45,7 +45,7 @@ module TestLauncher
45
45
  end
46
46
 
47
47
  def grep(regex, file_pattern: '*')
48
- results = interface.grep(regex, file_pattern)
48
+ results = interface.grep(regex, strip_system_path(file_pattern))
49
49
  results.map do |result|
50
50
  interpret_grep_result(result)
51
51
  end
@@ -1,3 +1,3 @@
1
1
  module TestLauncher
2
- VERSION = "2.1.0"
2
+ VERSION = "2.2.0"
3
3
  end
@@ -0,0 +1,42 @@
1
+ require "test_helper"
2
+ require "test_launcher/search/ag"
3
+ require "test_helpers/mocks"
4
+
5
+ module TestLauncher
6
+ module Search
7
+ class AgTest < TestCase
8
+ include DefaultMocks
9
+
10
+ def setup
11
+ super
12
+ Dir.stubs(:chdir)
13
+ end
14
+
15
+ def test_find_files__strips_absolute_path_for_search
16
+ interface = mock {
17
+ expects(:root_path).returns("/path/to/repo")
18
+ expects(:ls_files).with("relative/file_test.rb").returns(["inline_gem/relative/file_test.rb"])
19
+ }
20
+
21
+ searcher = Ag.new(nil, interface)
22
+ files = searcher.find_files("/path/to/repo/relative/file_test.rb")
23
+
24
+ assert_equal ["/path/to/repo/inline_gem/relative/file_test.rb"], files
25
+ end
26
+
27
+ def test_grep__strips_absolute_path_of_file_pattern
28
+ interface = mock {
29
+ expects(:root_path).returns("/path/to/repo")
30
+ expects(:grep).with("regex", "relative/file_test.rb").returns([
31
+ "relative/file_test.rb:20: def test_regex"
32
+ ])
33
+ }
34
+
35
+ searcher = Ag.new(nil, interface)
36
+ files = searcher.grep("regex", file_pattern: "/path/to/repo/relative/file_test.rb")
37
+
38
+ assert_equal [{file: "/path/to/repo/relative/file_test.rb", line_number: 20, line: "def test_regex"}], files
39
+ end
40
+ end
41
+ end
42
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: test_launcher
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.1.0
4
+ version: 2.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pete Kinnecom
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-01-27 00:00:00.000000000 Z
11
+ date: 2017-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -56,7 +56,6 @@ files:
56
56
  - lib/test_launcher/base_error.rb
57
57
  - lib/test_launcher/cli.rb
58
58
  - lib/test_launcher/cli/input_parser.rb
59
- - lib/test_launcher/cli/query.rb
60
59
  - lib/test_launcher/cli/request.rb
61
60
  - lib/test_launcher/frameworks/base.rb
62
61
  - lib/test_launcher/frameworks/ex_unit.rb
@@ -94,9 +93,9 @@ files:
94
93
  - test/test_launcher/queries/line_number_query_test.rb
95
94
  - test/test_launcher/queries/multi_path_query_test.rb
96
95
  - test/test_launcher/queries/path_query_test.rb
97
- - test/test_launcher/queries/search_query_test.rb
98
96
  - test/test_launcher/rspec_integration_test.rb
99
97
  - test/test_launcher/rubymine_test.rb
98
+ - test/test_launcher/search/ag_test.rb
100
99
  - test/test_launcher/search/git_test.rb
101
100
  - test_launcher.gemspec
102
101
  homepage: http://github.com/petekinnecom/test_launcher
@@ -145,7 +144,8 @@ test_files:
145
144
  - test/test_launcher/queries/line_number_query_test.rb
146
145
  - test/test_launcher/queries/multi_path_query_test.rb
147
146
  - test/test_launcher/queries/path_query_test.rb
148
- - test/test_launcher/queries/search_query_test.rb
149
147
  - test/test_launcher/rspec_integration_test.rb
150
148
  - test/test_launcher/rubymine_test.rb
149
+ - test/test_launcher/search/ag_test.rb
151
150
  - test/test_launcher/search/git_test.rb
151
+ has_rdoc:
@@ -1,30 +0,0 @@
1
- require "test_launcher/base_error"
2
- require "test_launcher/queries"
3
- require "test_launcher/cli/request"
4
-
5
- module TestLauncher
6
- module CLI
7
- class Query < BaseQuery
8
- attr_reader :shell, :searcher
9
-
10
- def command
11
- def queries
12
- requests.map {|request| Queries::GenericQuery.new(request: request)}
13
- end
14
-
15
- def requests
16
- @frameworks.map {|framework|
17
- Request.new(
18
- framework: framework,
19
- search_string: @search_string,
20
- run_all: @run_all,
21
- disable_spring: @disable_spring,
22
- example_name: @example_name,
23
- shell: shell,
24
- searcher: searcher
25
- )
26
- }
27
- end
28
- end
29
- end
30
- end
@@ -1,54 +0,0 @@
1
- require "test_helper"
2
- require "test_helpers/mocks"
3
- require "test_launcher/queries"
4
-
5
- module TestLauncher
6
- module Queries
7
- class SearchQueryTest < TestCase
8
- include DefaultMocks
9
-
10
- def test__multi_search_term__hits
11
- command_finder = Mock.new(Queries::CommandFinder, multi_path_query: :multi_path_query)
12
- request = MockRequest.new(search_string: "a b")
13
-
14
- assert_equal :multi_path_query, SearchQuery.new(request, command_finder).command
15
- end
16
-
17
- def test__multi_search_term__misses
18
- command_finder = Mock.new(Queries::CommandFinder, multi_path_query: nil, single_search_term: :single_search_term)
19
- request = MockRequest.new(search_string: "a b")
20
-
21
- assert_equal :single_search_term, SearchQuery.new(request, command_finder).command
22
- end
23
-
24
- def test__line_number__hits
25
- command_finder = Mock.new(Queries::CommandFinder, line_number: :line_number)
26
- request = MockRequest.new(search_string: "a:1")
27
-
28
- assert_equal :line_number, SearchQuery.new(request, command_finder).command
29
- end
30
-
31
- def test__line_number__misses
32
- command_finder = Mock.new(Queries::CommandFinder, line_number: nil, single_search_term: :single_search_term)
33
- request = MockRequest.new(search_string: "a:1")
34
-
35
- assert_equal :single_search_term, SearchQuery.new(request, command_finder).command
36
- end
37
-
38
- def test__single_search_term
39
- command_finder = Mock.new(Queries::CommandFinder, single_search_term: :single_search_term)
40
- request = MockRequest.new(search_string: "a")
41
-
42
- assert_equal :single_search_term, SearchQuery.new(request, command_finder).command
43
- end
44
-
45
- def test__none
46
- command_finder = Mock.new(Queries::CommandFinder, single_search_term: nil)
47
- request = MockRequest.new(search_string: "a")
48
-
49
- assert_equal nil, SearchQuery.new(request, command_finder).command
50
- end
51
-
52
- end
53
- end
54
- end