Commit Graph

41 Commits

Author SHA1 Message Date
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
Ignat Korchagin
0d6da33391 Update grains unit test to support reading firmware grains from sysfs in Linux 2017-05-03 13:10:29 +00:00
Erik Johnson
20f856f038 Update unit tests for numeric osmajorrelease 2017-04-11 12:36:36 -05:00
Pedro Algarvio
d397763553
Adjust to the new LoaderModuleMockMixin usage 2017-03-28 19:03:59 +01:00
Pedro Algarvio
1f7a0aa65b
Proper mocking 2017-03-28 19:00:51 +01:00
Nicole Thomas
350edbe7e6 Remove unused import in test_core.py 2017-03-14 10:28:42 -06:00
Daniel Wallace
b839193443 Use linux_distribution from distro if not in platform
http://bugs.python.org/issue1322

python 3.7 is deprecating the platform.{linux_distribution,dist}
functions.  They are being moved to the `distro` module on pypi.  This
adds support for using the distro module if platform does not have the
needed functions.
2017-03-14 10:09:47 -05:00
Pedro Algarvio
3beb3fb801
Move whatever we need from salttesting to salt.
Let's drop the salttesting dependency cycle.
2017-02-28 22:52:49 +00:00
Pedro Algarvio
3a85996d2a
Code cleanup 2017-02-24 00:49:32 +00:00
Pedro Algarvio
15af4c9728
Test filenames conformity. Adjust for pytest. 2017-02-23 23:19:42 +00:00
rallytime
80acd51d6f Update __builtin__ mock for PY3: module was moved to "builtins" 2017-01-05 14:11:28 -05:00
Jorge Schrauwen
374d4038d3 [develop] grains should have some information about zpools if available (#36839)
* grains should have some information about zpools if available

* Add __opts__ as a global variable so test do not fail.

* fix lint error
2016-10-13 11:04:38 -06:00
Mike Place
d72f13d9c0 Merge pull request #35415 from meaksh/fix-suse-os-grains-in-develop
Fixed 'os' and 'os_family' grains for SUSE systems in develop
2016-08-13 08:50:52 +09:00
Pablo Suárez Hernández
7c1a5f8bc6 Fixed 'os' and 'os_family' grains for SUSE systems 2016-08-12 13:33:27 +01:00
rallytime
69b9342d67 Update grains unit tests: osmajorrelease grain is a str, not an int.
Refs #35227

These tests will need to be changed back to integers once Nitrogen
is released.
2016-08-11 10:38:58 -06:00
rallytime
0b1e9e9a78 Merge branch '2016.3' into 'develop'
Conflicts:
  - salt/client/mixins.py
  - salt/grains/core.py
  - salt/modules/saltutil.py
  - salt/runner.py
  - salt/states/saltmod.py
  - salt/wheel/__init__.py
  - tests/unit/states/saltmod_test.py
2016-08-10 10:25:32 -06:00
Bo Maryniuk
fe5da97283 Lintfix: E8303 2016-08-06 00:27:34 +02:00
Bo Maryniuk
4dc45f2509 Add grains unit test for Ubuntu systems 2016-08-05 11:55:02 +02:00
Bo Maryniuk
110a422d5a Keep osmajorrelease as a string type for 2016.3 release 2016-07-19 17:52:08 +02:00
Bo Maryniuk
2040c7caa5 Add unit test for osmajorrelease grain 2016-07-14 18:08:15 +02:00
Bo Maryniuk
208fd33b48 Add unit test for osmajorrelease grain 2016-07-14 18:05:12 +02:00
rallytime
7c216c3a1d Fix the unit.grains.core_test tests to run with Python3 2016-07-07 16:41:21 -06:00
rallytime
07f5ebdf38 Pylint fix 2016-06-24 08:28:25 -06:00
rallytime
ea048fd9b6 Merge branch '2016.3' into 'develop'
Conflicts:
  - salt/grains/core.py
  - tests/unit/grains/core_test.py
2016-06-23 17:13:20 -06:00
Pablo Suárez Hernández
23ce0b431b some cleanup and renaming 2016-06-20 15:39:19 +01:00
Pablo Suárez Hernández
44eda2ad9f Fix for openSUSE Tumbleweed 2016-06-20 12:04:10 +01:00
Pablo Suárez Hernández
0d4a710d86 fixes for fopen mock and some os_release_map for SLES11SP3 2016-06-20 11:56:06 +01:00
Pablo Suárez Hernández
d6410a03b8 unit tests for SUSE os grains detection 2016-06-20 11:22:01 +01:00
Pablo Suárez Hernández
d78d57b717 Test fixed: get OS grain from /etc/os-release if possible 2016-06-17 13:32:57 +01:00
Pablo Suarez Hernandez
d80e0532ff fix: osarch_mock 2016-06-17 13:32:57 +01:00
Pablo Suarez Hernandez
db00ec756d osarch mock for unit test 2016-06-17 13:32:57 +01:00
Pablo Suarez Hernandez
dabc5cab7e lint fix 2016-06-17 13:32:56 +01:00
Pablo Suarez Hernandez
9ac514724b testing if SUSE os grain is set from /etc/os-release 2016-06-17 13:32:56 +01:00
Pablo Suárez Hernández
1afc12f6d1 Test fixed: get OS grain from /etc/os-release if possible 2016-06-13 10:19:17 +01:00
Pablo Suarez Hernandez
a0693aafcb fix: osarch_mock 2016-06-10 09:48:37 +01:00
Pablo Suarez Hernandez
1680f18556 osarch mock for unit test 2016-06-10 08:51:33 +01:00
Pablo Suarez Hernandez
63e2f27fa6 lint fix 2016-06-09 21:33:06 +01:00
Pablo Suarez Hernandez
7f7800ffc9 testing if SUSE os grain is set from /etc/os-release 2016-06-09 15:09:00 +01:00
Erik Johnson
9da467aec7 Rename core.py to core_test.py 2016-02-24 10:15:01 -07:00
Erik Johnson
468c637032 Add unit test for core grains 2016-02-24 10:15:01 -07:00