learn-test 3.2.1.pre.2 → 3.2.1.pre.7

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: 15426312a830557a6848f66424053f7e48ad4712b82c1f9ffc20b85d31bdc527
4
- data.tar.gz: 00afcb7752cb7d6d8e4d6fdecc28ee11eaef7266b7320e3a2ea8817aa9d88b69
3
+ metadata.gz: 249f2021b3b57e076db38961e1abfb5a8cdedbc7726ee33ad707ac7eea2678ff
4
+ data.tar.gz: 1688198ff9a0a2c5a558385b551db62b9a8d22b8435eb985200c91741d49aa7e
5
5
  SHA512:
6
- metadata.gz: 639fc95e645ec9ae18039783b98f78be4e73e9902d4fc7fb68bff843ed2d5cc8048d13b63fa4e170a7b102ad77e65d72f48fafba8a1838494a1c688afee1b950
7
- data.tar.gz: c834fe0531e3b8242c172ff3b4394976c26c69f049a7ac67b1a6e8aca9928f1b7c7b3fb2c8d645899bafed196929a1db6c768e907b2c274f700ceedd37eceec6
6
+ metadata.gz: bb4e34682cefc0b4e0c07d53a20ec48fe0b97cd4c6f1fac9dc83bf897d641d16cb61366ade6ceb6d641e7562578b7fa3f4ce8beb3ff890c57dcc190a91d6ac10
7
+ data.tar.gz: 1963e7a2d20ff15ff403e933ce85b8d875dc55c8146632d21b70cf4a2b17a565d8acac9509be7b98bb5f03796b8e97bb1fb6768e6f92863532026bd9c7071e6a
@@ -15,15 +15,12 @@
15
15
  # Please see http://www.gnu.org/licenses/gpl-2.0.txt
16
16
  #
17
17
 
18
- USAGE='[ info | save <message> [ --editor | --untracked | --no-gpg-sign ] | log [ --pretty ] | delete ] [ [--] <file>... ]'
18
+ USAGE='[ save <message> [ --editor | --untracked | --no-gpg-sign ] | delete ] [ [--] <file>... ]'
19
19
  LONG_USAGE="Manage Work In Progress branches
20
20
 
21
21
  Commands:
22
22
  git wip - create a new WIP commit
23
23
  git wip save <message> - create a new WIP commit with custom message
24
- git wip info [<branch>] - brief WIP info
25
- git wip log [<branch>] - show changes on the WIP branch
26
- git wip delete [<branch>] - delete a WIP branch
27
24
 
28
25
  Options for save:
29
26
  -e --editor - be less verbose, assume called from an editor
@@ -31,22 +28,19 @@ Options for save:
31
28
  -i --ignored - capture also ignored files
32
29
  --no-gpg-sign - do not sign commit; that is, countermand
33
30
  'commit.gpgSign = true'
34
-
35
- Options for log:
36
- -p --pretty - show a pretty graph
37
- -r --reflog - show changes in reflog
38
- -s --stat - show diffstat
39
31
  "
40
32
 
41
- SUBDIRECTORY_OK=Yes
42
- OPTIONS_SPEC=''
43
-
44
- source "$(git --exec-path)/git-sh-setup"
33
+ . "$(git --exec-path)/git-sh-setup"
45
34
 
46
35
  require_work_tree
47
36
 
48
- TMP="$GIT_DIR/.git-wip.$$"
49
- trap 'rm -f "$TMP-*"' EXIT
37
+ TMP=$(mktemp -d -t .git-wip)
38
+
39
+ cleanup () {
40
+ rm -f "$TMP-*"
41
+ }
42
+
43
+ trap cleanup 0
50
44
 
51
45
  WIP_INDEX="$TMP-INDEX"
52
46
 
@@ -68,10 +62,6 @@ report_soft_error () {
68
62
  die "$@"
69
63
  }
70
64
 
71
- cleanup () {
72
- rm -f "$TMP-*"
73
- }
74
-
75
65
  get_work_branch () {
76
66
  ref=$(git symbolic-ref -q HEAD) \
77
67
  || report_soft_error "git-wip requires a branch"
@@ -85,10 +75,6 @@ get_work_branch () {
85
75
  echo $branch
86
76
  }
87
77
 
88
- get_wip_branch () {
89
- return 0
90
- }
91
-
92
78
  check_files () {
93
79
  local -a files="$@"
94
80
 
@@ -223,86 +209,6 @@ do_save () {
223
209
  dbg "SUCCESS"
224
210
  }
225
211
 
226
- do_info () {
227
- local branch=$1
228
-
229
- die "info not implemented"
230
- }
231
-
232
- do_log () {
233
- local work_branch=$1
234
- [ -z $branch ] && work_branch=$(get_work_branch)
235
- local wip_branch="$WIP_PREFIX$work_branch"
236
-
237
- local log_cmd="log"
238
- local graph=""
239
- local pretty=""
240
- local stat=""
241
- while [ -n "$1" ]
242
- do
243
- case "$1" in
244
- -p|--pretty)
245
- graph="--graph"
246
- pretty="--pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative"
247
- ;;
248
- -s|--stat)
249
- stat="--stat"
250
- ;;
251
- -r|--reflog)
252
- log_cmd="reflog"
253
- ;;
254
- *)
255
- break
256
- ;;
257
- esac
258
- shift
259
- done
260
-
261
- if [ $log_cmd = reflog ]
262
- then
263
- echo git reflog $stat $pretty $wip_branch | sh
264
- return $?
265
- fi
266
-
267
- if ! work_last=$(git rev-parse --verify $work_branch)
268
- then
269
- die "'$work_branch' branch has no commits."
270
- fi
271
-
272
- dbg work_last=$work_last
273
-
274
- if ! wip_last=$(git rev-parse --quiet --verify $wip_branch)
275
- then
276
- die "'$work_branch' branch has no commits."
277
- fi
278
-
279
- dbg wip_last=$wip_last
280
-
281
- local base=$(git merge-base $wip_last $work_last)
282
-
283
- dbg base=$base
284
-
285
- echo git log $graph $stat $pretty $@ $wip_last $work_last "^$base~1" | sh
286
- }
287
-
288
- do_delete () {
289
- local branch=$1
290
-
291
- die "delete not implemented"
292
- }
293
-
294
- do_help () {
295
- local rc=$1
296
-
297
- cat <<END
298
- Usage: git wip $USAGE
299
-
300
- $LONG_USAGE
301
- END
302
- exit $rc
303
- }
304
-
305
-
306
212
  if test $# -eq 0
307
213
  then
308
214
  dbg "no arguments"
@@ -323,13 +229,6 @@ save)
323
229
  shift
324
230
  fi
325
231
  ;;
326
- info|log|delete)
327
- WIP_COMMAND=$1
328
- shift
329
- ;;
330
- help)
331
- do_help 0
332
- ;;
333
232
  --*)
334
233
  ;;
335
234
  *)
@@ -341,15 +240,6 @@ case $WIP_COMMAND in
341
240
  save)
342
241
  do_save "$WIP_MESSAGE" $@
343
242
  ;;
344
- info)
345
- do_info $@
346
- ;;
347
- log)
348
- do_log $@
349
- ;;
350
- delete)
351
- do_delete $@
352
- ;;
353
243
  *)
354
244
  usage
355
245
  exit 1
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  require 'git'
4
+ require 'logger'
4
5
 
5
6
  module LearnTest
6
7
  module GitWip
@@ -9,13 +10,23 @@ module LearnTest
9
10
  git = Git.open('./', log: log)
10
11
  working_branch = git.current_branch
11
12
 
12
- `learn-test-wip save "Automatic test submission" -u &> /dev/null`
13
+ commands = [
14
+ 'learn-test-wip save "Automatic test submission" --editor',
15
+ "git push origin wip/#{working_branch}:refs/heads/wip"
16
+ ].join(';')
13
17
 
14
- return false unless $?.success? # rubocop:disable Style/SpecialGlobalVars
15
-
16
- git.push('origin', "wip/#{working_branch}:refs/heads/wip")
17
- git.config['remote.origin.url'].gsub('.git', '/tree/wip')
18
- rescue StandardError
18
+ Open3.popen3(commands) do |_stdin, _stdout, _stderr, wait_thr|
19
+ # while out = stdout.gets do; puts out; end
20
+ # while err = stderr.gets do; puts err; end
21
+
22
+ if wait_thr.value.exitstatus.zero?
23
+ git.config['remote.origin.url'].gsub('.git', '/tree/wip')
24
+ else
25
+ # puts 'There was an error running learn-test-wip'
26
+ false
27
+ end
28
+ end
29
+ rescue StandardError => e
19
30
  false
20
31
  end
21
32
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module LearnTest
4
- VERSION = '3.2.1.pre.2'
4
+ VERSION = '3.2.1.pre.7'
5
5
  end
@@ -7,28 +7,35 @@ describe LearnTest::GitWip do
7
7
  let!(:git_url) { 'https://github.com/learn-co/learn-test' }
8
8
  let!(:git_base) { instance_double(Git::Base) }
9
9
 
10
+ let(:wait_thr) { double }
11
+ let(:wait_thr_value) { double }
12
+ let(:stdout_and_stderr) { double }
13
+
10
14
  context 'success' do
11
15
  it 'should return the git url' do
12
16
  expect(Git::Base).to receive(:open).with('./', { log: false }).and_return(git_base)
13
17
  expect(git_base).to receive(:current_branch).and_return(working_branch)
14
18
 
15
- expect(subject).to receive(:`).with(/learn-test-wip save ".+" -u &> \/dev\/null/ )
16
- expect($?).to receive(:success?).and_return(true)
19
+ expect(wait_thr).to receive(:value).and_return(wait_thr_value)
20
+ expect(wait_thr_value).to receive(:exitstatus).and_return(0)
17
21
 
18
- expect(git_base).to receive(:push).with('origin', "wip/#{working_branch}:refs/heads/wip")
19
- expect(git_base).to receive_message_chain(:config, :[]).with('remote.origin.url').and_return("#{git_url}.git")
22
+ expect(Open3).to receive(:popen3).and_yield(nil, nil, nil, wait_thr)
20
23
 
24
+ expect(git_base).to receive_message_chain(:config, :[]).with('remote.origin.url').and_return("#{git_url}.git")
21
25
  expect(subject.run!).to eq("#{git_url}/tree/wip")
22
26
  end
23
27
  end
24
28
 
25
29
  context 'failure' do
26
30
  it 'should return false on process error' do
27
- allow(Git::Base).to receive(:open).and_return(git_base)
28
- allow(git_base).to receive(:current_branch)
29
- allow(subject).to receive(:`)
31
+ expect(Git::Base).to receive(:open).with('./', { log: false }).and_return(git_base)
32
+ expect(git_base).to receive(:current_branch).and_return(working_branch)
33
+
34
+ expect(wait_thr).to receive(:value).and_return(wait_thr_value)
35
+ expect(wait_thr_value).to receive(:exitstatus).and_return(1)
36
+
37
+ expect(Open3).to receive(:popen3).and_yield(nil, nil, nil, wait_thr)
30
38
 
31
- expect($?).to receive(:success?).and_return(false)
32
39
  expect(subject.run!).to eq(false)
33
40
  end
34
41
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: learn-test
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.1.pre.2
4
+ version: 3.2.1.pre.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Flatiron School
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-21 00:00:00.000000000 Z
11
+ date: 2020-09-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake