Commit Graph

51 Commits

Author SHA1 Message Date
Tim Byrne c3a9b62189
Remove BATS-based tests 2019-02-25 17:08:07 -06:00
Tim Byrne e7f9616b39
Rewrite testing system (#119)
The new test system is written with py.test. These tests are more
comprehensive, run faster by an order of magnitude, and are far more
maintainable. The tests themselves conform to PEP8.
2019-02-20 07:48:25 -06:00
Tim Byrne 2517e4b4ac
Add test-case for exclusions in `.yadm/encrypt` (#86) 2017-09-21 14:21:22 -05:00
Tim Byrne cc30dfc24b
Re-number unit tests 2017-09-16 09:33:12 -05:00
Tim Byrne f23bdb8147
Remove last use of LS_PROGRAM
Globs are not determined by an `eval` of `ls` anymore. The only other
use of `ls` can be replaced with a simple `printf`.
2017-09-16 09:33:12 -05:00
Tim Byrne b78bb1eef4
Eliminate the use of `eval`
`eval` has always been used to process the globs in `.yadm/encrypt`.
This is being removed, as there is a risk of executing "dirty" data
found in `.yadm/encrypt`.

Caveats of this change:
  * Brace and tilde expansion will no longer work in `.yadm/encrypt`
  * Paths with spaces must not be quoted anymore
2017-09-16 09:32:38 -05:00
Tim Byrne df952094a1
Add test case for supporting directories in .yadm/encrypt (#81) 2017-09-04 13:19:04 -05:00
Tim Byrne ebc90bfc98
Create secured private dirs (#74)
Directories are created prior to merge during clone, and prior to any
Git command run.

This directly addresses CVE-2017-11353.

When cloning a repo which includes data in a .ssh or .gnupg directory,
if those directories do not exist at the time of cloning, yadm will
create the directories with mask 0700 prior to merging the fetched data
into the work-tree.

When running a Git command and .ssh or .gnupg directories do not exist,
create those directories with mask 0700 prior to running the Git
command. However, do not create those directories if
yadm.auto-private-dirs is false.
2017-08-22 21:28:07 -05:00
Tim Byrne 557ce93fab
Add tests for hooks 2017-07-05 16:33:50 -05:00
Tim Byrne 5293db986a
Support `YADM_DISTRO` in Jinja templates (#68) 2017-07-03 16:21:27 -05:00
Tim Byrne 7538851fe3
Gracefully handle changes in yadm.cygwin-copy 2017-06-01 17:06:27 -05:00
Tim Byrne f8e0bd593d
Support `yadm.cygwin-copy` configuration (#62)
With `yadm.cygwin-copy` set to "true", alternate files will be copies
instead of symlinks, but only when running on Cygwin.
2017-05-31 18:28:54 -05:00
Tim Byrne 79e149ed25
Switch to semantic versioning 2017-05-10 08:00:29 -05:00
Tim Byrne 356c47a19f
Add Bash completion script (#60)
* Add completion script
* Add introspection
2017-04-24 07:49:10 -05:00
Tim Byrne eabf9091fb
Support WSL detection (#61)
`uname -s` was already being executed every run for *cygwin* detection.
I've consolidated all of the OS detection into a single function. This
also fixed the problem of running `uname -s` twice for the `alt`
command.
2017-04-09 08:47:18 -05:00
Tim Byrne 9824de5410
Change template indicator to `##yadm.j2` 2017-03-31 16:42:51 -05:00
Tim Byrne fda2da6a5b
Fix tests that set local.hostname (#59) 2017-03-31 12:43:32 -05:00
Tim Byrne 3a87fe311a
Add test case for envtpl missing 2017-03-31 00:04:28 -05:00
Tim Byrne aaa4152fac
Remove trailing whitespace 2017-03-30 21:58:26 -05:00
Tim Byrne fd6fa8c923
Merge pull request #58 from janschulz/jinja_processing
Excluding yadm.md changes (these will happen during a release)
2017-03-30 17:00:27 -05:00
Tim Byrne 6974e4ce8c
Add tests for `enter` command 2017-03-30 16:30:39 -05:00
Jan Schulz a479b70d8a Add jinja processing to alt command
With the new functionality, when the 'alt' command is called (or automatically
triggered), any file with a name ending in '##yadm_tmpl' is treated as a jinja
template. The template is processed by envtpl and the result is written to a
file without the '##yadm_tmpl' name. The variables passed into the template
processing are

  YADM_CLASS
  YADM_OS
  YADM_HOSTNAME
  YADM_USER

These variables are set according to the normal rules for
CLASS, OS, HOSTNAME, and USER during the alt processing.
2017-03-26 03:49:24 +02:00
Tim Byrne 297df5d231
Add tests for classes with a range of names (#51) 2017-03-25 11:32:06 -05:00
Tim Byrne d80bbff2b9
Acceptance tests for encrypt globs and paths with space (#53, #54) 2017-03-24 17:37:40 -05:00
Tim Byrne d28df86494
Store class/os/host/user overrides in the local repo config
Overrides are meant to be local to each system, unlike other
configurations which are often added to a user's dotfiles repository.

With this change, the configurations change names:

  alt.class => local.class
  alt.os    => local.os
  alt.host  => local.host
  alt.user  => local.user
2017-01-26 10:48:40 -06:00
Tim Byrne 76d90db627
Replace "TODO text" for `yadm config` (#46) 2017-01-25 17:31:56 -06:00
Tim Byrne 671b5c6ec6
Support both gpg1 and gpg2 missing key error messages 2017-01-25 09:13:59 -06:00
Tim Byrne 12a23178d8
Tests for offering bootstrap during clone (#45) 2017-01-25 08:31:40 -06:00
Tim Byrne 3f1a8364ae
Add tests for bootstrap command (#42) 2017-01-23 17:53:40 -06:00
Tim Byrne 02107c35d9
Add tests for stashed conflicting data during clone (#44) 2017-01-20 16:50:14 -06:00
Tim Byrne d7abc7ff41
Create tests for class support in alt-links (#21) 2017-01-20 00:13:56 -06:00
Tim Byrne 1534420106
Acceptance tests for overriding OS/Host/User (#21) 2017-01-18 19:51:13 -06:00
Tim Byrne 3ea710317a
Add acceptance tests for alt-link wildcards (#43) 2017-01-18 01:46:51 -06:00
Tim Byrne a25a180b88
Add acceptance tests for alt-link delimiters (#49)
Delimiters other than `.` should not be used.
This adds some test with delimiter `_`.
2017-01-16 17:51:48 -06:00
Tim Byrne ef796bc2c1
Add acceptance test for space-lines/empty-lines in .yadm/encrypt (#40) 2017-01-08 11:05:33 -06:00
Tim Byrne 25d3123988
Unit tests for alternate Git program (#30) 2017-01-07 19:47:18 -06:00
Tim Byrne 0fd3e1559d
Rename unit tests for `ls` program 2017-01-07 19:47:07 -06:00
Tim Byrne 12a5179e8a
Add acceptance tests for alt-linking encrypted files (#34) 2017-01-07 16:04:55 -06:00
Tim Byrne 067a359e42
Add acceptance tests for improved exit values (#35) 2017-01-06 16:26:00 -06:00
Tim Byrne 5107198422
Add acceptance tests for white space alt paths (#36) 2017-01-06 07:50:36 -06:00
Tim Byrne e40c054805
Use gpg1 (if available) for automated tests
gnupg2 does not support agent-less password input (breaking the
expect-driven tests).
2016-09-07 22:35:36 -05:00
Tim Byrne 60eb4c415f
Fallback to using `ls` if `/bin/ls` does not exist (#22) 2016-08-28 22:06:14 -05:00
Tim Byrne e4d1b3a165
Unit tests for alternate gpg program (#19) 2016-08-14 23:53:21 -05:00
Tim Byrne 85abcf981c
Acceptance tests for symlinked directories (#17) 2016-08-14 23:52:54 -05:00
Tim Byrne 8bede1cb84 Test for correct error message when public key is missing 2016-04-21 09:10:47 -05:00
Tim Byrne ea3b2ecfa8 Support `yadm.gpg-recipient = ASK` 2016-04-21 08:58:07 -05:00
Tim Byrne 7854275488 Create acceptance tests for asymmetric encryption 2016-04-21 07:13:40 -05:00
Tim Byrne 27d0e7baa2 Refactor path tests
Including new path tests for planned features
2016-04-08 17:31:00 -05:00
Tim Byrne 340f88bd52 Use `-n` instead of negating `-z` 2016-04-08 17:31:00 -05:00
Tim Byrne f48dea6879 Resolve shellcheck errors in bats tests 2016-04-07 08:16:22 -05:00