- Add support for running tests with pytest.
- Allow cleaning testing filesystem inside the RUNNER_WORKSPACE environment variable path. This is for GitHub Action tests executed inside a container.
- Allow cleaning testing filesystem inside the Python default temporary directory, tempfile.tempdir.
- Include nose_randomly extension. The extension is no longer maintained upstream. It also removes the dependency on node.
- Update for python 3.12.
- Fix tearDown error handling.
- Fix long path handling in Windows for Windows Share paths.
- Update support for Twisted 23.10.0
- Update for python 3.11.
- Remove getFileMD5Sum and co functions.
- Remove mk.md5
- Add initial support for long file names.
- More unicode fixed after running more code on Windows.
- Fix unidecode usage.
- Many py3 fixes on Windows.
- Add skipOnPY3 for conditionals.
- Fix getFileMD5Sum
- Fix Unicode path returned on Windows for unlocked avatars.
- Fix getAbsoluteReal path Windows not to return a path in long path format.
- Add support for long paths in Windows.
- getFileMD5Sum now always returns unicode.
- ChevahTestCase.tempFile can now handle content as both bytes or unicode.
- Remove support for remote_pdb
- Use distro instead of ld to have the same lib in py2 and py3.
- Move to a non-namespace package.
- openFile and openFileForReading can now open for reading a file that is already open for writing.
- openFile and openFileForReading now raise a standard error when the file is not found.
- openFile and openFileForReading now raise a standard error when the parent path for a file is not found.
- Fix openFile when used in read-write mode.
- Fix openFile when used in write-only mode.
- Don't lock the file on Windows when opened for reading. This is valid for both openForReading` method and for the generic open method.
- temp_segments on Windows now works for locked filesystems,
- isAbsolutePath returns False for an empty string instead of raising an error.
- Fix iterateFolderContent on Windows for unlocked accounts when listing the root.
- Add ILocalFilesystem.isAbsolutePath API.
- Add conditionals.onOSVersion helper.
- Disable PAM for macOS.
- Fix handling for path on Windows when the current working directory is a drive path \?c:somedrive-path
- Make sure the temporary path for the LocalTestFilesystem is always accessible event for avatar that are locked inside their home folder and don't have access to the global temporary directory.
- Disable PAM for Alpine.
- ChevahTestCase.os_version was updated for RHEL, CentOS and Oracle Linux to always return rhel-N as the Linux distribution name.
- ChevahTestCase.assertEqual now checks inside collections for Unicode vs. bytestrings.
- Add support for stacked test cleanups.
- Update for Twisted 20.3.0
- Continue cleanup on error.
- getGroupForUser raised ValueError also on Windows.
- Use changes from 0.58.4.
- getGroupForUser raised ValueError when the request groups for validation is an empty value or None.
- Replace isUserInGroups with getGroupForUser so that you also know the name of the matched group.
- Fix Unix and Windows path normalization to handle single quote characters.
- Allow cryptography 3.2 with OpenSSL 1.0.2.
- Fix directory attributes returned for virtual folders.
- Fix executing reactor to wait for currently executed threads, and not only for the queued threads.
- Fix running from Unicode path on Linux/macOS.
- Fix unicode conversion in error messages.
- Use windows-1252 encoding when running on non-English Windows.
- Fix compat when running on non-English Windows.
- Don't copy permissions on local file copy.
- Copy file and don't create symlink on local copy.
- Explicitly set permissions after PID file is created.
- Fix testing code.
- Remove openFileForUpdating.
- Remove utf8 argument from openFileForReading, openFileForWriting,
- and openFileForAppending.
- Add mode argument from openFileForWriting, and openFileForAppending.
- DEFAULT_FILE_MODE was removed.
- The Unix daemon will now delete the PID file on exit.
- Update for short os names in brink.
- Fix py3 exception in nose_runner script.
- Remove support for Contains.
- Fix print function in nose_runner script.
- system_users.userExist now raised a CompatError when it fails to check the existence of an user.
- Updated testing text generator to include upper and lower characters.
- Remove TODOs for Solaris/AIX/HPUX as there is no plan to fix them.
- Fix test case teardown.
- Fix reactor debug mode.
- Fix assertEqual str vs unicode check.
- Fix command line argument parsing when using multiprocessiong.
- Fix previous base version on Chevah PyPi.
- getHomeFolder now always returns a path without the trailing separater.
- Update Twisted reactor cleanup code to show the tasks from the queue.
- Use same modified date on Windows for folder iteration as with getAttributes.
- Virtual folders always shadow the real folders.
- Don't follow links when getting the attributes for iterated folder.
- Use impersonation when getting the attributes during the folder iteration.
- Return attributes in folder iterator.
- Add path to more OSError raised on Windows.
- When opening a file, if the OS error has no associated path, add the path the the exception.
- Use start of current year for date of virtual folders.
- Fix detection of virtual path for nested virtual paths.
- Add macOS on the list of case-insensitive path handling.
- Disable the filesystem overlay functionality. You can no longer mix virtual with non-virtual paths.
- The LocalFilesystem now fails to initialized if a virtual path overlaps an existing folder.
- Operation will fail if they are executed on a path which looks like a virtual path but has no direct mapping.
- Add case insensitive behaviour for Windows.
- Fix getAttributes and getStatus operations for root segments.
- Restrict any mutating operation on the virtual path itself or for parts of the virtual path.
- Fix listing of deep virtual path which are not overlaid.
- Fix listing of virtual path which are overlaid
- Fix folder iteration with unicode.
- Add support for virtual directories as a way to allow explicit access to selected folders outside of the locked home folder.
- Fix skipOnCondition to run the tests when condition is meet.
- Fix ILocalFilesystem.getSegmentsFromRealPath on Windows when dealing with long UNC paths for locked filesystems. In previous releases a long UNC was erroneously considered outside of the base path.
- ILocalFilesystem.getAttributes on Windows raise an error for broken links and return the size and modified date of the linked file.
- ILocalFilesystem.exist no longer follows links.
- Add support for working with UNC paths and symbolic links to Windows shares.
- Raise OSError when trying to set permissions on Windows, instead of AttributeError. This should have a behaviour closer to Unix.
- Iterate the reactor with a timeout and not with None. When iterating with None we have observed that not all tasks are executed by the reactor, especially closing the connections.
- Add helper functions to create temporary file and folders with auto cleanup.
- Add helpers for spinning the reactor in various conditions.
- Add option to ignore thread names during the tearDown of ChevahTestCase.
- Fix getAttributes for broken link on Windows to return file not found.
- Add removed methods in 0.45.0.
- Remove usage of future and use six.
- Fix cleanup to call the cleanups in reverse order which they were added.
- Update MD5 checksum to match the changes in getFileMD5Sum.
- Bump version due to strange behaviour of buildslaves.
- Better version reporting for AIX.
- Update the build system for Alpine and to work better with test_remote.
- Use hexdigest in getFileMD5Sum.
- Remove port listening helpers.
- Update to latest Solaris on 32bit.
- Add support for OS detection in test case and no longer use hostname to detect the OS.
- Initialize the test case with a non-Unicode drop user name.
- Fix OpenBSD/FreeBSD password authentication.
- Fix bad shadow change in previous release.
- Fix assertIsNotEmpty with deep Unicode data.
- Add minimal support for OpenBSD and FreeBSD.
- Fix assertion in chevah testcase.
- Remove HTTP context test helper.
- Add iterator for getting the members of a folder.
- Fix cleanup code to not fail if a delayed called was already canceled.
- The default timeout used to wait for a deferred is now defined by the test class instance.
- Fix the mess created in 0.37.0 where compat as also installing the chevah.empirical namespace and conflicting with the empirical package.
- Impersonating local accounts is determined by the availability of SeImpersonatePrivilege on Windows.
- Add conditional for skipping tests depending on availability of administrator privileges
- Update empirical to the latest version
- Move chevah.empirical to compat.
- Add API for opening a file in write mode for updating. With seek enabled and without truncation.
- Fix getStatus on Windows to support files that are kept open by other processes.
- Add dedicated PAM method to authenticate based on username and password.
- Fix checking password stored in /etc/passwd in AIX.
- Remove dependencies from setup.py as we have POSIX only deps which fail on Windows.
- Remove dependencies from setup.py as we have POSIX only deps which fail on Windows.
- Refactor group impersonation to use initgroups() rather than getgroups/setgroups.
- Add node_id, owner and group to IFileAttributes.
- Add comparison between IFileAttributes.
- Fix userExists on Unix to not read /etc/passwd as root.
- Initial code update for Python 3 support.
- Populate sys.argv with Unicode values on Windows.
- Add support for HP-UX in OS administration.
- Disable PAM support for HP-UX.
- Update support for HP-UX.
- Record dependencies in setup.py.
- Remove twisted as a dependency.
- Add touch and copyFile method to Filesystem.
- Fix deleteFile on Windows to delete files which are read-only.
- Fix deleteFolder(recursive) on Windows to delete files which are read-only.
- Update Unix daemon to use instance variables for detach_process and preserve_standard_streams.
- Update to support OS X again.
- Fix setting GID for file replace operation in OS administration.
- Refactor getAttributes to return a IFileAttributes object, instead of a tuple.
- getAttributes no longer allow filtering attributes. All attributes are populated in the returned object.
- Re-enable support for Solaris 10.
- Fix getFolderContent to raise ENOENT when folder does not exists on windows.
- Rename manufacture to mk.
- getTestUser returns None if the user is not found (undefined),
- Treat error.filename as an optional attribute of WindowsError.
- Remove test user home folders only when necessary.
- Force converted IOError to OSError to have text encoded as UTF-8.
- Fix conversion of IOError to OSError.
- Unify errors for file operations on folder and for folder operations on files.
- Report errors when removing test user's home folder and raise an exception.
- Cache Windows user token value.
- Security fix: getHomeFolder called with an invalid username/token combination.
- Fix domain test account's home folder removal.
- Fix creating symbolic links on Windows when impersonating.
- Separate Windows OS administration helpers.
- Add support for granting/revoking user rights/privileges on Windows for the testing infrastructure.
- LocalFilesystem.exists() now returns false on Windows for broken links.
- Raise CompatError in getSegmentsFromRealPath if path is outside of home folder.
- Update build system to latest buildbot.
- Convert WindowsError from deleteFile into OSError and convert error code for file not found.
- Add support for reading symbolic links on Windows.
- Add support for creating symbolic links on Windows.
- Add support for detecting symbolic link capabilities.
- Refactor file/folder/link attributes retrieval.
- Add 'link' and 'file' attributes to LocalFilesystem.getAttributes().
- Remove follow_symlinks from LocalFilesystem.getAttributes().
- Add LocalFilesystem.getStatus() method.
- Use latest brink and linters.
- Fix cleanup on account administration on AIX and OSX.
- Fix getSegmentsFromRealPath on Windows.
- Fix ILocalFilesystem.openFile declaration.
- Fix getSegmentsFromRealPath for locked filesystems.
- Update to latest empirical.
- Add os_type and os_family to process_capabilies.
- Move TEST_ACCOUNT_USERNAME_TEMP to server as it is only used there.
- Fix creation of accounts with default primary group.
- Don't stop to teardown users and groups on first error.
- Fix folder mask on AIX.
- Use lazy loading of pam module do mitigate the side effects generated when load pam library on AIX.
- Move os access control setup/teardown from empirical into compat.
- Fix support for AIX system.
- Upgrade to unique temporary folders based on latest empirical.
- Fix temporary segments for impersonated accounts.
- Wait 100 seconds for account creation.
- Wait 100 seconds for group creation.
- Wait 30 seconds 2nd API call for getting a group.
- Wait 10 seconds 2nd API call for getting a group.
- Wait 5 seconds for 2nd API call for getting a group.
- Try 2 different API calls to wait for group creation.
- Sync 0.9.2 with latest changes from 0.10.0.
- Wait 10 seconds for account creation.
- Ignore KeyError exception when waiting for account creation.