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

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
  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