tes-request 0.10 → 0.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e9841f4d3a444ade45a6d1565c5dd55be1140a2465a855c3275254e2e8f7396b
4
- data.tar.gz: 5141b7e96643c8e43583d48efeb6ad1c1671067f711e60b606ea524533752635
3
+ metadata.gz: 6ef4285a8107b16ad50d37d0d4ed27e4deb96be99ff6a20ed24e742ea3533183
4
+ data.tar.gz: b4e0fdc1dcafed9548b9027a53228ef31db168bb554c3aacdfadbef3e68b664a
5
5
  SHA512:
6
- metadata.gz: bdee923d55c1fe276bda1b488b5e732aabedbfdc4e2076886f4a9f4272f7c67f7cbaae0cac74efb1ae406ecdc0d4733744f6958d3edc5290e9949936aa5ed2f7
7
- data.tar.gz: 2e9570dc012cb3b301289d5f23bac869c474e2b1e0993bbe8b86545c825b0628c73dd5a691ac271561cd48be7ef490a22add7ce94c199af930a1d0418517a8c8
6
+ metadata.gz: 5d00ae75a43d6effbf933b9ff4229f1184bac0706dc4c13d459d25da1b9b332524f9c98da609e8a8cca32738aa279da36abcb09d5ae577644394761f083913e4
7
+ data.tar.gz: 2301ac3ba6c6cda67b7dd23ea539e0743fcfa45da5edcf73cc5c45598b35ecdaa160775b561a55167fad875ba8faf7245c2c70732f49cac2f58208b0dfdbab49
@@ -1,14 +1,10 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.0.0
5
- - 2.1.10
6
- - 2.2.7
7
- - 2.3.3
8
- - 2.3.4
9
- - 2.4.0
10
- - 2.4.1
11
- - 2.5.0
4
+ - 2.2.10
5
+ - 2.3.7
6
+ - 2.4.4
7
+ - 2.5.1
12
8
  before_install: gem install bundler
13
9
  install: bundle
14
10
  script:
@@ -18,4 +14,4 @@ deploy:
18
14
  api-key: $RUBYGEMS_API_KEY
19
15
  on:
20
16
  tags: true
21
- rvm: 2.4.1
17
+ rvm: 2.5.1
@@ -5,7 +5,7 @@ module Tes
5
5
  class Expression
6
6
  include Comparable
7
7
 
8
- REG_EXP_CHAIN = /^(!)?([0-9A-Za-z_.]+)(\?|==|>=|<=|<|>|=|!=)?([\w-\.]+)?/
8
+ REG_EXP_CHAIN = /^(!)?([0-9A-Za-z_.]+)(\?|==|>=|<=|<|>|=|!=)?([.\-\w]+)?/
9
9
 
10
10
  # @param [String] exp_str 表达式字符串
11
11
  def initialize(exp_str)
@@ -8,7 +8,7 @@ module Tes::Request::RSpec
8
8
  class CiSlicer
9
9
  SUPPORT_FILE_TYPES = [:yaml, :yml, :json, :properties]
10
10
 
11
- def initialize(file_type, project_dir, res_replace_map_json_file=nil, pool_url=nil)
11
+ def initialize(file_type, project_dir, res_replace_map_json_file = nil, pool_url = nil)
12
12
  unless SUPPORT_FILE_TYPES.include?(file_type.to_sym)
13
13
  raise(ArgumentError, "Not supported file type:#{file_type}!")
14
14
  end
@@ -36,16 +36,38 @@ module Tes::Request::RSpec
36
36
  @cfg_target_dir
37
37
  end
38
38
 
39
- def spec_tag_param_str(tags)
39
+ def rspec_tag_param_str(tags)
40
40
  case tags
41
- when Array
42
- tags.map {|t| "--tag #{t}"}.join(' ')
43
- when String
44
- "--tag #{tags}"
45
- when nil
41
+ when Array
42
+ tags.map {|t| "--tag #{t}"}.join(' ')
43
+ when String
44
+ "--tag #{tags}"
45
+ when nil
46
+ nil
47
+ else
48
+ raise("不支持的类型:#{tags.class}")
49
+ end
50
+ end
51
+
52
+ def pytest_mark_param_str(tags)
53
+ case tags
54
+ when Array
55
+ if tags.empty?
46
56
  nil
57
+ elsif tags.size > 1
58
+ total_tag_str = tags.map {|t| t =~ /\S+\s+\S+/ ? "(#{t})" : t}.join(' or ')
59
+ "-m '#{total_tag_str}'"
47
60
  else
48
- raise("不支持的类型:#{tags.class}")
61
+ tag = tags.first
62
+ (tag =~ /\S+\s+\S+/) ? "-m '#{tag}'" : "-m #{tag}"
63
+ end
64
+
65
+ when String
66
+ (tags =~ /\S+\s+\S+/) ? "-m '#{tags}'" : "-m #{tags}"
67
+ when nil
68
+ nil
69
+ else
70
+ raise("不支持的类型:#{tags.class}")
49
71
  end
50
72
  end
51
73
 
@@ -58,34 +80,39 @@ module Tes::Request::RSpec
58
80
  FileUtils.rm_rf(target_dir)
59
81
  FileUtils.mkdir(target_dir)
60
82
  case file_type
61
- when :json
62
- save_file = File.join(target_dir, 'ci_tasks.json')
63
- File.open(save_file, 'w') {|f| f.write job_configs_for_ci.to_json}
64
- puts "Generated #{jobs.size} jobs, Stored in:#{save_file} ."
65
- when :yml, :yaml
66
- save_file = File.join(target_dir, 'ci_tasks.yml')
67
- File.open(save_file, 'w') {|f| f.write job_configs_for_ci.to_yaml}
68
- puts "Generated #{jobs.size} jobs, Stored in:#{save_file} ."
69
- when :properties
70
- job_configs_for_ci.each_with_index do |params, i|
71
- file = File.join(target_dir, "#{i}.properties")
72
- JavaProperties.write(params, file)
73
- end
74
- puts "Generated #{jobs.size} jobs, Stored in:#{target_dir}/*.properties ."
83
+ when :json
84
+ save_file = File.join(target_dir, 'ci_tasks.json')
85
+ File.open(save_file, 'w') {|f| f.write job_configs_for_ci.to_json}
86
+ puts "Generated #{jobs.size} jobs, Stored in:#{save_file} ."
87
+ when :yml, :yaml
88
+ save_file = File.join(target_dir, 'ci_tasks.yml')
89
+ File.open(save_file, 'w') {|f| f.write job_configs_for_ci.to_yaml}
90
+ puts "Generated #{jobs.size} jobs, Stored in:#{save_file} ."
91
+ when :properties
92
+ job_configs_for_ci.each_with_index do |params, i|
93
+ file = File.join(target_dir, "#{i}.properties")
94
+ JavaProperties.write(params, file)
95
+ end
96
+ puts "Generated #{jobs.size} jobs, Stored in:#{target_dir}/*.properties ."
75
97
  end
76
98
  end
77
99
 
78
- def get_job_rspec_run_args_str(job, split=' ')
79
- tags_str = spec_tag_param_str(job[:tag])
100
+ def get_job_rspec_run_args_str(job, split = ' ')
101
+ if job[:specs].any? {|s| s.match(/_spec.rb\b/)}
102
+ tags_str = rspec_tag_param_str(job[:tag])
103
+ elsif job[:specs].any? {|s| s.match(/_test.py\b/) or s.match(/test_\w+.py\b/)}
104
+ tags_str = pytest_mark_param_str(job[:tag])
105
+ end
80
106
  paths_str = job[:specs].join(split)
81
107
  tags_str ? (tags_str + split + paths_str) : paths_str
82
108
  end
83
109
 
84
- def get_job_env_profile_str(job, split=';')
110
+ def get_job_env_profile_str(job, split = ';')
85
111
  job[:profile].to_s(split)
86
112
  end
87
113
 
88
114
  private
115
+
89
116
  def gen_job_ci_params(job)
90
117
  {'RSPEC_PARAM' => get_job_rspec_run_args_str(job), 'REQUEST_ASKS' => get_job_env_profile_str(job)}
91
118
  end
@@ -1,5 +1,5 @@
1
1
  module Tes
2
2
  module Request
3
- VERSION = '0.10'
3
+ VERSION = '0.11'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tes-request
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.10'
4
+ version: '0.11'
5
5
  platform: ruby
6
6
  authors:
7
7
  - wuhuizuo
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-07-10 00:00:00.000000000 Z
11
+ date: 2018-07-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: java-properties