Timeline



Dec 8, 2020:

1:25 PM Ticket #144 (Add `FTPHost.copytree`) created by schwa
Add FTPHost.copytree, similar to shutil.copytree. See …

Dec 1, 2020:

6:06 PM Changeset [2019:016c9d1d0e8f] by Stefan Schwarzer <sschwarzer@…>
Test Python 3.6 to 3.9 with tox
2:25 PM Ticket #143 (Encoding-related failure with Python 3.9) created by schwa
When running the tests with tox for Python 3.9, I get […] I assume …
1:59 PM Changeset [2018:59b78101f450] by Stefan Schwarzer <sschwarzer@…>
Test on Python 3.9

Nov 30, 2020:

10:20 PM Ticket #142 (Make container for integration tests) closed by schwa
fixed: I revised the Dockerfile to not use ADD so that it works with …
9:23 PM Changeset [2017:ab68a8416f5f] by Stefan Schwarzer <sschwarzer@…>
Add build manifest for Sourcehut
9:15 PM Changeset [2016:1eab96c8af79] by Stefan Schwarzer <sschwarzer@…>
Add `.empty` marker
8:58 PM Changeset [2015:cf2177ee054b] by Stefan Schwarzer <sschwarzer@…>
Add `.empty` marker
8:42 PM Changeset [2014:4d943001bbdd] by Stefan Schwarzer <sschwarzer@…>
Add `.empty` file Add `.empty` file to retain directory in Mercurial repository.
7:49 PM Changeset [2013:c2712bb002de] by Stefan Schwarzer <sschwarzer@…>
Add `-a` option to `container ls`
7:45 PM Changeset [2012:ffb473bc8263] by Stefan Schwarzer <sschwarzer@…>
Change image tag to 0.2 This should help users a bit not using an obsolete image.
7:42 PM Changeset [2011:4be14c0d42a7] by Stefan Schwarzer <sschwarzer@…>
Add (and remove) `.empty` files These files are needed so that the directory structure is recreated when cloning/updating the Mercurial repository. On the other hand, we don't actually want the `.empty` files in the container, so remove them in the `RUN` command.
7:18 PM Changeset [2010:fa4b91eec358] by Stefan Schwarzer <sschwarzer@…>
Comment out `ftp.gnome.org` This currently (or permanently?) fails with "Network unreachable".
7:07 PM Changeset [2009:6d56d76e59ab] by Stefan Schwarzer <sschwarzer@…>
Remove unused files `rest_test.txt` is _created_ in one of the tests. `sync_test` doesn't seem to be used at all. Update `CONTENTS` (although the actual content doesn't matter for the tests).
6:58 PM Changeset [2008:8ae153555894] by Stefan Schwarzer <sschwarzer@…>
Rename `debian-keyring.tar.gz` to `large_file` This file _used to be_ an actual Debian keyring file, but I truncated it to make the image smaller. We don't need the whole actual file content.
6:50 PM Changeset [2007:c49235b09a67] by Stefan Schwarzer <sschwarzer@…>
Run Black on `find_problematic_code.py`
6:49 PM Changeset [2006:1c1f2b371ab5] by Stefan Schwarzer <sschwarzer@…>
Set image version to 0.2
6:23 PM Changeset [2005:1cf1fe78dd81] by Stefan Schwarzer <sschwarzer@…>
Make set-up of `ftptest` home folder explicit The previous implementation used an `ftptest.tar.gz` file that was a copy of my former local test directory. This approach had several downsides: - To create the `tar.gz` file so that it can be unpacked without modification with `ADD` in the Dockerfile, the owners/groups of the archive contents had to be correct, which required owner map and group map argument for `tar`. - Due to the versioned artifact being the `tar.gz` file and creating it was difficult (see before), it would have been very hard for contributors to make changes to the archive (for example when tests are added or modified). - The use of `ADD` on a file with heterogenous owners/groups triggered a bug when the image was created with Podman (see https://github.com/containers/podman/issues/8064 ). The new approach makes these changes: - The versioned data is the original `ftptest` home directory, so it's relatively easy to modify for new/changed tests. - The `ftptest` directory is copied with `COPY`. - The Dockerfile sets almost all owners/groups to `root:root`. Only where needed owner and group are set to `ftptest:ftpgroup`. This makes it explicit which tests need to modify which paths. - The restricted owner/group settings also have the advantage that tests which shouldn't modify the directory but accidentally did, would obviously fail.

Nov 29, 2020:

8:25 PM Ticket #142 (Make container for integration tests) reopened by schwa
The implementation works, but has problems I'd like to solve: - When …
12:03 AM Changeset [2004:c219752b5d4e] by Stefan Schwarzer <sschwarzer@…>
Set container-related variables conditionally

Nov 28, 2020:

6:04 PM Ticket #142 (Make container for integration tests) closed by schwa
fixed: I have implemented this, see browser:/test_server . You can build the …
5:55 PM Ticket #142 (Make container for integration tests) created by schwa
For years, the tests in test/test_real_ftp.py have run against an …
9:19 AM Changeset [2003:4910616f288d] by Stefan Schwarzer <sschwarzer@…>
Limit container to localhost Otherwise, hosts outside the host running the container can connect to your container!

Nov 27, 2020:

10:56 PM Changeset [2002:1a1ab0ff1745] by Stefan Schwarzer <sschwarzer@…>
Add `.dockerignore` file
10:45 PM Changeset [2001:7b878e67318a] by Stefan Schwarzer <sschwarzer@…>
Add README on image and container
10:30 PM Changeset [2000:d6af4566e0fa] by Stefan Schwarzer <sschwarzer@…>
Update to use with FTP server container See the subdirectory `test_server`.
10:27 PM Changeset [1999:df5ee67aa60d] by Stefan Schwarzer <sschwarzer@…>
Omit `-it` options These aren't necessary since we detach the container anyway.
10:19 PM Changeset [1998:055bbbbba62a] by Stefan Schwarzer <sschwarzer@…>
Unpack test data for integration tests The `ftptest` directory in `ftptest.tar.gz` is the data used by the integration tests. There may be unnessary data that's no longer used by the tests. I also experimented with `COPY`ing the `ftptest` subdirectory directly, but this had problems: - The owner for all files in the destination was `root`. However, it's intentional that some of the files are owned by `ftptest:ftpgroup` and some by `root:root`. - Directory and file names with non-ASCII characters in them were messed up. - There were problems with directory and file names with spaces in them. We need these for testing.
10:18 PM Changeset [1997:c5721b43ab1f] by Stefan Schwarzer <sschwarzer@…>
Add test data for integration tests This file needs to be unpacked in the container image (via the Dockerfile).
10:05 PM Changeset [1996:69a6fb599409] by Stefan Schwarzer <sschwarzer@…>
Execute all tests before a release I usually run `tox` before releases. In this cases it makes sense to run all tests, even if they're slow.
10:03 PM Changeset [1995:f17b8e8afed8] by Stefan Schwarzer <sschwarzer@…>
Detach container for FTP test server
9:59 PM Changeset [1994:7016db098192] by Stefan Schwarzer <sschwarzer@…>
Be more explicit in comment
9:58 PM Changeset [1993:24b7014a4fb8] by Stefan Schwarzer <sschwarzer@…>
Allow CHMOD command (presumably) For some reason, this doesn't work, though, and I need the `-A` option on the command line.
9:48 PM Changeset [1992:b6fe02ff004d] by Stefan Schwarzer <sschwarzer@…>
Chroot anyone but root Somehow the option `NoChroot no` in the configuration file doesn't work as I expected. The command line option works, though.
9:35 PM Changeset [1991:1dd7278644dd] by Stefan Schwarzer <sschwarzer@…>
Allow CHMOD command
8:15 PM Changeset [1990:672e324b15d3] by Stefan Schwarzer <sschwarzer@…>
Add targets to create docker image and container
8:13 PM Changeset [1989:b5dc24f8d863] by Stefan Schwarzer <sschwarzer@…>
Add `Dockerfile` for test server With the current setup, the `ftptest` user can log in and upload a file to their login directory. The test data for the ftputil integration tests isn't included yet.
8:12 PM Changeset [1988:29b2bae665ed] by Stefan Schwarzer <sschwarzer@…>
Use unix users instead of virtual users
4:35 PM Changeset [1987:670e6173429e] by Stefan Schwarzer <sschwarzer@…>
Put `.PHONY` directives above target definitions Collecting the `.PHONY` targets in one place makes the file shorter, but it's too easy to get the targets in the `.PHONY` directive out of sync with the present actual target definitions.
4:20 PM Changeset [1986:9bc4725b15eb] by Stefan Schwarzer <sschwarzer@…>
Add merged `pure-ftpd.conf` This is a combination of `stilliard`s original file and the file I used so far for my local FTP server.

Oct 30, 2020:

9:05 AM Ticket #141 (Broken pipe when downloading several files) created by ftputiluser
I'm attempting to download several files in this kind of (pseudo code) …

Oct 27, 2020:

4:00 PM Ticket #140 (Tests fail on darwin) closed by schwa
fixed: A friend of mine confirmed that socket.EAI_NONAME indeed is the …

Oct 24, 2020:

7:10 PM Changeset [1985:542e411f58ff] by Stefan Schwarzer <sschwarzer@…>
Use wildcard when deleting built data
7:07 PM Changeset [1984:b2b21ae7db1c] by Stefan Schwarzer <sschwarzer@…>
Remove dependency on exception message Compare `gaierror.errno` instead of the error message that comes with the `gaierror`. Compare `errno` with the named constant `socket.EAI_NONAME`, not a magic number because the numeric value can be different on different platforms or C runtimes. See also https://docs.python.org/3/library/socket.html#socket.gaierror and https://docs.python.org/3/library/socket.html#constants
7:05 PM Changeset [1983:7af75829e34f] by Stefan Schwarzer <sschwarzer@…>
Use `raise ... from` Using the `from` clause sets the raised exception's `__cause__` attribute, which may help with debugging. See https://docs.python.org/3/reference/simple_stmts.html#the-raise-statement
7:04 PM Changeset [1982:d985aa73279e] by Stefan Schwarzer <sschwarzer@…>
Clean up `FTPError` constructor - Remove workaround for Python 2 - Simplify logic for setting `strerror` and `errno`. Set the default up-front.
7:01 PM Changeset [1981:424aea01122a] by Stefan Schwarzer <sschwarzer@…>
Set development status to `Stable`

Oct 23, 2020:

8:57 AM Ticket #140 (Tests fail on darwin) created by ftputiluser
Probably nodename nor servname provided, or not known needs to be …
Note: See TracTimeline for information about the timeline view.