Commit Graph

56 Commits

Author SHA1 Message Date
rallytime
9e7aeb5e02
Change "to_str" to "to_bytes": needed when opening a file in bytes mode
References: https://github.com/saltstack/salt/pull/45357
2018-01-16 10:41:46 -05:00
twangboy
5d45a4478f
Fix unit.modules.test_file for Windows
Fixes `_regex_to_static` function for Windows. Regex returns the `\r`
portion of the Windows line ending as part of the regex search. We're
going to trim that off the end.

Skips `test_check_file_meta_no_lsattr` as there is this is Linux
specific

Opens files in binary mode on Windows in the tests

Changes to the appropriate assert calls

Fixes line ending issues in the file_content and file_modified variables
in the test
2018-01-09 15:17:25 -07:00
Erik Johnson
e65237c390
Update test to match how file.append works 2017-12-19 15:34:31 -06:00
Erik Johnson
8cdb9ea54f
[PY3] Add print_function import to files with unicode_literals already added
This makes the 2.x usage invalid syntax and forces the use of print as a
function. This adds the import to the files which I've updated in the
last couple of days but forgot to add it.
2017-12-15 12:14:18 -06:00
Erik Johnson
1bfc53fc57
Update file state/execution modules and associated files with unicode_literals
This updates the file state and execution modules to use
unicode_literals. Since the serializers and the cmd module are touched
by the file state/exec module, those are also updated here, as well as
the cmd state module, for good measure.

Additionally, I found that salt.utils.data.decode_dict (and decode_list)
are misnamed for what they actually do. Since they *encode* the
contents, the functions should be named encode_dict and encode_list,
respectively. And we also should have counterparts which actually
decode, so I've added them. The compatibility functions from salt.utils
still use the old "decode" names to preserve backward compatibility, but
they now invoke the renamed "encode" functions in salt.utils.data. Note
that this means that the compatibility functions
salt.utils.decode_dict/list, and their cognates in salt.utils.data now
do different things, but since the move to salt.utils.data is also
happening in the Oxygen release this is as good a time as any to correct
this oversight.

I've updated the jinja filter docs to include information on the renamed
jinja filters, and also added a section on jinja filter renaming to the
Oxygen release notes. There was another filter that I renamed during the
process of moving functions from salt.utils which I did not properly
document in the release notes, so this is now included along with the
others.
2017-12-13 16:43:45 -06:00
Bo Maryniuk
b2ed7d0ecd Mute pylint on misdetected regex-like strings that are actually just test data. 2017-11-10 19:50:47 +01:00
Bo Maryniuk
40f1e1d954 Rewrite unit tests for file.line on delete/replace an empty line 2017-11-10 19:50:47 +01:00
Bo Maryniuk
c2d9d8f8ea Add unit test for file.line ensuring line between two lines but content already exists 2017-11-10 19:50:47 +01:00
Bo Maryniuk
9963895719 Add unit test for file.line ensuring line inside the range of lines 2017-11-10 19:50:47 +01:00
Bo Maryniuk
1e1f5e5a6f Add unit test for file.line ensuring line between two other lines nearby 2017-11-10 19:50:47 +01:00
Bo Maryniuk
59de17b260 Add unit test for file.line on calling insert/ensure after specific line 2017-11-10 19:50:47 +01:00
Bo Maryniuk
710481b25e Add unit test for file.line when calling insert/ensure mode 2017-11-10 19:50:47 +01:00
Bo Maryniuk
b42b762c57 Add unit test for file.line when inserting a line at the end of the file (append functionality) 2017-11-10 19:50:46 +01:00
Bo Maryniuk
80c40bbb11 Remove irrelevant issue number 2017-11-10 19:50:46 +01:00
Bo Maryniuk
c95b3e031c Add unit test about file.line for insert/start 2017-11-10 19:50:46 +01:00
Bo Maryniuk
926372574d Remove irrelevant issue number from the docstring 2017-11-10 19:50:46 +01:00
Bo Maryniuk
b4cd4bd165 Add unit test for file.line replacement 2017-11-10 19:50:46 +01:00
Bo Maryniuk
9a72761dc6 Add unit test for file.line delete by direct match or regular expression 2017-11-10 19:50:46 +01:00
Bo Maryniuk
60185f578e Add unit test for file.line usage together with before/after 2017-11-10 19:50:46 +01:00
Bo Maryniuk
fc79a546dd Rename unit test 2017-11-10 19:50:46 +01:00
Bo Maryniuk
d1a41dd7bd Add unit test file.line insert before line 2017-11-10 19:50:46 +01:00
Bo Maryniuk
1ea7e33605 Harden unit test for 'after pattern' scenario 2017-11-10 19:50:46 +01:00
Bo Maryniuk
bde3611f08 Remove unnecessary code 2017-11-10 19:50:46 +01:00
Bo Maryniuk
fdffbe47b0 Add unit test for using patterns for line matching 2017-11-10 19:50:46 +01:00
Bo Maryniuk
ed171176a8 Rename unit test while using no patterns 2017-11-10 19:50:46 +01:00
Bo Maryniuk
d08307f53b Add unit test for file.line insert=after 2017-11-10 19:50:46 +01:00
Bo Maryniuk
39126da5a2 Update unit test data 2017-11-10 19:50:46 +01:00
Bo Maryniuk
47fbe03c14 Add unit test for file._starts_till function 2017-11-10 19:50:46 +01:00
Bo Maryniuk
599310e684 Fix docs for skipif decorator 2017-11-10 19:50:46 +01:00
Bo Maryniuk
d5d653af45 Add unit test for file.line on no location/before/after check failure 2017-11-10 19:50:46 +01:00
Bo Maryniuk
5b76c41f44 Move all file.line unit tests to the own class 2017-11-10 19:50:46 +01:00
Bo Maryniuk
f0f08a10e8 Add unit test for file.line on an empty content while not deleting anything 2017-11-10 19:50:46 +01:00
Bo Maryniuk
b5a80231bd Rename a unit test and clarify its purpose in docs 2017-11-10 19:50:46 +01:00
Bo Maryniuk
cf191b01d6 Add unit test for file.line on mode checks 2017-11-10 19:50:46 +01:00
nicholasmhughes
fa1c442943
added support for location in file.line when using ensure 2017-10-23 10:40:35 -04:00
Eric Radman
6da4fd979b
Check file attributes in check_file_meta() if lsattr(1) is installed
lsattr/chattr is not installed on many Unix-like platforms by default,
including *BSD, Solaris, and minimal Linux distributions such as Alpine.
2017-10-19 18:38:12 -04:00
Erik Johnson
877abb89d0
Complete the salt.utils refactor
This moves the remaining 30 functions from salt.utils to new locations.
2017-10-15 09:43:31 -05:00
Erik Johnson
c6b655b6e9
Move 14 more functions from salt.utils
These functions are:

salt.utils.test_mode -> salt.utils.args.test_mode
salt.utils.split_input -> salt.utils.args.split_input
alt.utils.pem_finger -> salt.utils.crypt.pem_finger
salt.utils.is_bin_file -> salt.utils.files.is_binary
salt.utils.list_files -> salt.utils.files.list_files
salt.utils.safe_walk -> salt.utils.files.safe_walk
salt.utils.st_mode_to_octal -> salt.utils.files.st_mode_to_octal
salt.utils.normalize_mode -> salt.utils.files.normalize_mode
salt.utils.human_size_to_bytes -> salt.utils.files.human_size_to_bytes
salt.utils.get_hash -> salt.utils.hashutils.get_hash
salt.utils.is_list -> salt.utils.data.is_list
salt.utils.is_iter -> salt.utils.data.is_iter
salt.utils.isorted -> salt.utils.data.sorted_ignorecase
salt.utils.is_true -> salt.utils.data.is_true
2017-10-13 09:29:03 -05:00
rallytime
74d315fd28
Merge branch '2017.7' into 'develop'
Conflicts:
  - salt/modules/file.py
  - tests/unit/modules/test_file.py
2017-09-26 13:45:10 -04:00
twangboy
056f3bb4c0
Use with to open temp file 2017-09-25 09:35:25 -06:00
twangboy
716e99c453
Fix py3 bytestring problems 2017-09-25 09:35:24 -06:00
twangboy
543610570c
Fix bytestring issues, fix errored tests 2017-09-25 09:35:24 -06:00
twangboy
9fe83a34a5
Remove old variable declaration 2017-09-25 09:35:23 -06:00
twangboy
c5cf5e92c1
Fix many tests 2017-09-25 09:35:23 -06:00
rallytime
e11aa7e5ef Adjust test mocking to handle __utils__['files.is_text_file'] 2017-09-11 10:25:00 -04:00
Erik Johnson
3184168365 Use explicit unicode strings + break up salt.utils
This PR is part of what will be an ongoing effort to use explicit
unicode strings in Salt. Because Python 3 does not suport Python 2's raw
unicode string syntax (i.e. `ur'\d+'`), we must use
`salt.utils.locales.sdecode()` to ensure that the raw string is unicode.
However, because of how `salt/utils/__init__.py` has evolved into the
hulking monstrosity it is today, this means importing a large module in
places where it is not needed, which could negatively impact
performance. For this reason, this PR also breaks out some of the
functions from `salt/utils/__init__.py` into new/existing modules under
`salt/utils/`. The long term goal will be that the modules within this
directory do not depend on importing `salt.utils`.

A summary of the changes in this PR is as follows:

* Moves the following functions from `salt.utils` to new locations
  (including a deprecation warning if invoked from `salt.utils`):
  `to_bytes`, `to_str`, `to_unicode`, `str_to_num`, `is_quoted`,
  `dequote`, `is_hex`, `is_bin_str`, `rand_string`,
  `contains_whitespace`, `clean_kwargs`, `invalid_kwargs`, `which`,
  `which_bin`, `path_join`, `shlex_split`, `rand_str`, `is_windows`,
  `is_proxy`, `is_linux`, `is_darwin`, `is_sunos`, `is_smartos`,
  `is_smartos_globalzone`, `is_smartos_zone`, `is_freebsd`, `is_netbsd`,
  `is_openbsd`, `is_aix`
* Moves the functions already deprecated by @rallytime to the bottom of
  `salt/utils/__init__.py` for better organization, so we can keep the
  deprecated ones separate from the ones yet to be deprecated as we
  continue to break up `salt.utils`
* Updates `salt/*.py` and all files under `salt/client/` to use explicit
  unicode string literals.
* Gets rid of implicit imports of `salt.utils` (e.g. `from salt.utils
  import foo` becomes `import salt.utils.foo as foo`).
* Renames the `test.rand_str` function to `test.random_hash` to more
  accurately reflect what it does
* Modifies `salt.utils.stringutils.random()` (née `salt.utils.rand_string()`)
  such that it returns a string matching the passed size. Previously
  this function would get `size` bytes from `os.urandom()`,
  base64-encode it, and return the result, which would in most cases not
  be equal to the passed size.
2017-08-08 13:33:43 -05:00
rallytime
ccf790a83f Update all references for moved functions to use "files" util
- fopen
- flopen
- fpopen
- safe_rm
- is_empty
- is_fcntl_available
2017-07-18 10:31:01 -06:00
Pedro Algarvio
abe608d739
Drop @patch usage 2017-04-28 13:36:42 +01:00
Pedro Algarvio
d05028e88c
These are not integration tests 2017-04-01 14:22:51 +01:00
Pedro Algarvio
d397763553
Adjust to the new LoaderModuleMockMixin usage 2017-03-28 19:03:59 +01:00