Commit Graph

333 Commits

Author SHA1 Message Date
Tzu-ping Chung c054d2ae94 Skip test_complex_lock_deep_extras 2018-04-07 22:13:33 +08:00
Tzu-ping Chung f2bfc96baf Come on 2018-04-07 21:42:36 +08:00
Tzu-ping Chung ab44596c9a Skip test_complex_lock 2018-04-07 19:23:47 +08:00
Tzu-ping Chung fa3934ac0d Cherry-pick changes from #1909
Let's hope this works.
2018-04-07 18:34:55 +08:00
Dan Ryan 1ec8dafc34 Only run tests once each
Signed-off-by: Dan Ryan <dan@danryan.co>
2018-04-06 23:26:36 -04:00
Tzu-ping Chung 483bf175cf Rework cmdparse.Script API
The API now requires a command argument from signature. Parsing errors
(no command from input) is thrown as a custom exception, and caught by
the outmost possible invocation to emit a message from click.
2018-04-06 23:26:36 -04:00
Tzu-ping Chung d1eeeced45 Apply script parsing fix from pypi/pipenv#1909 2018-04-06 23:26:35 -04:00
Dan Ryan 61418fda20 Fix all tests and split out requirements refactor
- includes missing artifacts
- fixes cmdprse script
- Remove extraneous changes
- Fix tests
2018-04-06 23:25:37 -04:00
Tzu-ping Chung a536da4e6c Mock more dependencies
- Mock dateparser for maya
- Dot in PyPI package name becomes dash
- Mock regex for maya
2018-04-06 23:25:15 -04:00
Dan Ryan 703776fc92 Fix tests and requirements parsing
- Fix zip urls and markers
- Mock maya dependencies

Signed-off-by: Dan Ryan <dan@danryan.co>
2018-04-06 23:24:18 -04:00
Tzu-ping Chung 536efd2d38 Fix edge cases for pipenv run
- Use os.path.join instead of os.path.sep.join
- This prevents strange test errors when there are slashes in either parts
- Better test reporting
- Cleanup
2018-04-06 23:23:17 -04:00
Dan Ryan 1607091b85 Begin complete re-work of requirements parsing
Signed-off-by: Dan Ryan <dan@danryan.co>
2018-04-06 23:23:16 -04:00
Tzu-ping Chung b4e832fb73 Improve test error report 2018-04-06 23:23:16 -04:00
Tzu-ping Chung 9dda593650 Improve python 2 cmdparse compatibility
- Use string_types to improve compat on Python 2
- Correct PYTHON_VERSION in appveyor.yml
- Let's debug
2018-04-06 23:22:30 -04:00
Dan Ryan d3a08878cf Fix marker parsing
Signed-off-by: Dan Ryan <dan@danryan.co>
2018-04-06 23:22:30 -04:00
Tzu-ping Chung 15c7308ca9 Proper script argument escaping
I chose to make Script.parse to always operate in POSIX mode so it is much
easier to write commands compatible on all platforms.

Script.cmdify is the important part on Windows. It ensures the argument
line is always escaped and joined properly on Windows, not just for the
subset that works both under POSIX and Windows (as is the case of
shlex.escape).
2018-04-06 23:22:30 -04:00
Dan Ryan 31301b1536 Fix deps and testing infrastructure
- Fix requirement parsing
- Add appveyor config
- cutover from pathlib to pathlib2 if needed
- Pin pathlib2==2.1.0 to avoid scandir
- Windows script runner fix
- Backport `shlex.quote()` for use in `pipenv run`
- Update tests and appveyor

Signed-off-by: Dan Ryan <dan@danryan.co>
2018-04-06 23:19:32 -04:00
Dan Ryan ff15be72c5 Remove verbose flag auto-add
Signed-off-by: Dan Ryan <dan@danryan.co>
2018-03-30 18:27:25 -04:00
Dan Ryan f9ce022794 Tweeak pypi mock
Signed-off-by: Dan Ryan <dan@danryan.co>
2018-03-30 18:25:42 -04:00
Dan Ryan 61ce755229 Add missing artifacts
Signed-off-by: Dan Ryan <dan@danryan.co>
2018-03-30 18:15:44 -04:00
Dan Ryan 5d3bb0768d Unmock ibm-db-sa
Signed-off-by: Dan Ryan <dan@danryan.co>
2018-03-30 17:54:52 -04:00
Dan Ryan 4551d2b68c Fix verbose command construction 2018-03-30 16:36:19 -04:00
Dan Ryan f61a2eddca Fix resolution for broken tests
Signed-off-by: Dan Ryan <dan@danryan.co>
2018-03-30 15:49:12 -04:00
Dan Ryan f13f296b03 Fix tests
Signed-off-by: Dan Ryan <dan@danryan.co>
2018-03-30 14:52:13 -04:00
Dan Ryan d36081889e Remove mocked pypi from complex test
- Remove extra marker too

Signed-off-by: Dan Ryan <dan@danryan.co>
2018-03-30 13:44:49 -04:00
Dan Ryan 4117affaef Catch up with master properly
Signed-off-by: Dan Ryan <dan@danryan.co>
2018-03-30 13:10:24 -04:00
Dan Ryan 5f1d8ee309 Final test updates 2018-03-30 13:00:59 -04:00
Tzu-ping Chung 6bde082a04 Skip some tests on 2.7 2018-03-30 12:38:11 -04:00
Dan Ryan 3e07c809eb Undo capsys, reorder install and lock 2018-03-30 12:37:17 -04:00
Dan Ryan 28a6cb4805 Disable capsys to capture stdout/stderr 2018-03-30 12:37:17 -04:00
Dan Ryan a4bbed3f69 Block for debugging 2018-03-30 12:37:16 -04:00
Tzu-ping Chung b5ae7cc0bb Just always require suffix then
This is not the TemporaryDirectory you are looking for.
2018-03-30 12:37:16 -04:00
Tzu-ping Chung ba93ad2da5 Never mock PyPI half-way, either do, or don't 2018-03-30 12:37:16 -04:00
Tzu-ping Chung 42d83dbbac Need to use the backported TemporaryDirectory 2018-03-30 12:37:15 -04:00
Tzu-ping Chung 1c9792434d Un-mock maya 2018-03-30 12:37:15 -04:00
Tzu-ping Chung a3dcc66844 Refactor 2018-03-30 12:37:13 -04:00
Tzu-ping Chung 67de4891a9 Skip Internet and add verbose flag if possible 2018-03-30 12:36:37 -04:00
Tzu-ping Chung 8a39fbceaa Actually use mocked PyPI when testing with locking 2018-03-30 12:36:34 -04:00
Tzu-ping Chung 0cb0f8999f Fix scripts and source errors not caught before 2018-03-30 12:32:07 -04:00
Frost Ming aff9078985 pass pre flag to lock 2018-03-30 22:35:48 +08:00
Dan Ryan 00ebba4b58 Switch to tablib and try again
Signed-off-by: Dan Ryan <dan@danryan.co>
2018-03-29 22:00:44 -04:00
Dan Ryan 4043ee57f6 Merge branch 'jtratner/fix-scripts-quoting' into locking-handle-eggs 2018-03-29 21:12:13 -04:00
Jeff Tratner 15c19ee001 Make run easier to understand 2018-03-29 17:57:04 -07:00
Dan Ryan 15bb50cfa4 Add some markers
Signed-off-by: Dan Ryan <dan@danryan.co>
2018-03-29 20:43:27 -04:00
Dan Ryan 139d8bd553 Merge branch 'master' into locking-handle-eggs 2018-03-29 09:32:20 -04:00
Jeff Tratner 133417a941 Remove extraneous is_vcs calls
1. is_vcs requires (req.path or req.uri) to be truthy.
2. (req.path or req.uri) would be true in first if statement

Thus if you have:

```
if (req.uri or req.path or ...) and not req.vcs
elif req.vcs or is_vcs(req.path)
```

if `is_vcs(req.path)` is Truthy, then the first if clause must be
truthy, so it's unnecessary.

Also add a quick test to confirm that originating purpose for that check
is now handled otherwise.
2018-03-29 09:32:04 -04:00
Jeff Tratner 5de48b4800 Better shell quoting
1. Only use split() when we actually come in from CLI (possibly never
   need to do that at all)
2. Add some additional test cases to cover quoting.
3. Better error message in case of missing executable pulled from a run
script.

E.g.:

```
[scripts]
random = "myexecutable a b c"
myexecutable = "echo 5"
```

```
Error: the command myexecutable (from random) could not be found within PATH.
```

vs. previous, which had a slightly disingenous error message.

```
Error: the command myexecutable could not be found within PATH or Pipfile's [scripts].
```
2018-03-29 00:55:08 -07:00
Jeff Tratner 7afa528c0f Fix small test case typo 2018-03-28 23:54:00 -07:00
Dan Ryan 71896d1f20 Skip python 3 only test on py2
Signed-off-by: Dan Ryan <dan@danryan.co>
2018-03-29 00:48:01 -04:00
Dan Ryan 14cdff2c0b Include markers when they are included at top lvl
Signed-off-by: Dan Ryan <dan@danryan.co>
2018-03-29 00:13:20 -04:00