Mercurial > hg
view tests/test-hgwebdir-gc.py @ 49280:311fcc5a65f6
thirdparty: remove Python 2-specific selectors2 copy
The selectors module was added in Python 3.4. Because we require Python 3.6, it
will always be available. Therefore the selectors2 module is not imported.
I’ve verified that the selectors2-specific workaround in commandserver.py is not
necessary with the selectors module from the standard library. It returns an
empty list if timeout was exceeded.
The pytype directive was needed to silence the following error:
File "/tmp/mercurial-ci/mercurial/worker.py", line 299, in _posixworker: No attribute 'close' on int [attribute-error]
In Union[_typeshed.HasFileno, int]
File "/tmp/mercurial-ci/mercurial/worker.py", line 299, in _posixworker: No attribute 'close' on _typeshed.HasFileno [attribute-error]
In Union[_typeshed.HasFileno, int]
author | Manuel Jacob <me@manueljacob.de> |
---|---|
date | Sat, 28 May 2022 22:08:13 +0200 |
parents | 6000f5b25c9b |
children |
line wrap: on
line source
import os from mercurial.hgweb import hgwebdir_mod hgwebdir = hgwebdir_mod.hgwebdir os.mkdir(b'webdir') os.chdir(b'webdir') webdir = os.path.realpath(b'.') def trivial_response(req, res): return [] def make_hgwebdir(gc_rate=None): config = os.path.join(webdir, b'hgwebdir.conf') with open(config, 'wb') as configfile: configfile.write(b'[experimental]\n') if gc_rate is not None: configfile.write(b'web.full-garbage-collection-rate=%d\n' % gc_rate) hg_wd = hgwebdir(config) hg_wd._runwsgi = trivial_response return hg_wd def process_requests(webdir_instance, number): # we don't care for now about passing realistic arguments for _ in range(number): for chunk in webdir_instance.run_wsgi(None, None): pass without_gc = make_hgwebdir(gc_rate=0) process_requests(without_gc, 5) assert without_gc.requests_count == 5 assert without_gc.gc_full_collections_done == 0 with_gc = make_hgwebdir(gc_rate=2) process_requests(with_gc, 5) assert with_gc.requests_count == 5 assert with_gc.gc_full_collections_done == 2 with_systematic_gc = make_hgwebdir() # default value of the setting process_requests(with_systematic_gc, 3) assert with_systematic_gc.requests_count == 3 assert with_systematic_gc.gc_full_collections_done == 3