##// END OF EJS Templates
localrepo: handle ValueError during repository opening...
localrepo: handle ValueError during repository opening Python 3.8 can raise ValueError on attempt of an I/O operation against an illegal path. This was causing test-remotefilelog-gc.t to fail on Python 3.8. This commit teaches repository opening to handle ValueError and re-raise an Abort on failure. An arguably better solution would be to implement this logic in the vfs layer. But that seems like a bag of worms and I don't want to go down that rabbit hole. Until users report uncaught ValueError exceptions in the wild, I think it is fine to patch this at the only occurrence our test harness is finding it. Differential Revision: https://phab.mercurial-scm.org/D7944

File last commit:

r43346:2372284d default
r45469:9e5b4dbe default
Show More
test-duplicateoptions.py
50 lines | 1.2 KiB | text/x-python | PythonLexer
/ tests / test-duplicateoptions.py
Robert Stanca
py3: use print_function in test-duplicateoptions.py
r28740 from __future__ import absolute_import, print_function
Idan Kamara
tests: add a test to check for duplicate command options
r14449 import os
Robert Stanca
py3: use absolute_import in test-duplicateoptions.py
r28739 from mercurial import (
commands,
extensions,
Yuya Nishihara
test-duplicateoptions: alias ui as uimod
r28804 ui as uimod,
Robert Stanca
py3: use absolute_import in test-duplicateoptions.py
r28739 )
Idan Kamara
tests: add a test to check for duplicate command options
r14449
John Stiles
graph: improve graph output by using Unicode characters...
r38359 ignore = {b'highlight', b'win32text', b'factotum', b'beautifygraph'}
Idan Kamara
tests: add a test to check for duplicate command options
r14449
Augie Fackler
tests: don't emit false failures when sqlite3 is missing...
r40399 try:
import sqlite3
Augie Fackler
formatting: blacken the codebase...
r43346
del sqlite3 # unused, just checking that import works
Augie Fackler
tests: don't emit false failures when sqlite3 is missing...
r40399 except ImportError:
ignore.add(b'sqlitestore')
Idan Kamara
tests: add a test to check for duplicate command options
r14449 if os.name != 'nt':
Augie Fackler
tests: update duplicateoptions test to use bytestrings everywhere...
r33689 ignore.add(b'win32mbcs')
Idan Kamara
tests: add a test to check for duplicate command options
r14449
disabled = [ext for ext in extensions.disabled().keys() if ext not in ignore]
Augie Fackler
tests: update duplicateoptions test to use bytestrings everywhere...
r33689 hgrc = open(os.environ["HGRCPATH"], 'wb')
hgrc.write(b'[extensions]\n')
Idan Kamara
tests: add a test to check for duplicate command options
r14449
for ext in disabled:
Augie Fackler
tests: update duplicateoptions test to use bytestrings everywhere...
r33689 hgrc.write(ext + b'=\n')
Idan Kamara
tests: add a test to check for duplicate command options
r14449
hgrc.close()
Yuya Nishihara
ui: factor out ui.load() to create a ui without loading configs (API)...
r30559 u = uimod.ui.load()
Idan Kamara
tests: add a test to check for duplicate command options
r14449 extensions.loadall(u)
Yuya Nishihara
extensions: add "uipopulate" hook, called per instance, not per process...
r40760 extensions.populateui(u)
Idan Kamara
tests: add a test to check for duplicate command options
r14449
Simon Heimberg
test: test for options duplicate with global options...
r15099 globalshort = set()
globallong = set()
for option in commands.globalopts:
option[0] and globalshort.add(option[0])
option[1] and globallong.add(option[1])
Augie Fackler
tests: update duplicateoptions test to use bytestrings everywhere...
r33689 for cmd, entry in commands.table.items():
Simon Heimberg
test: test for options duplicate with global options...
r15099 seenshort = globalshort.copy()
seenlong = globallong.copy()
Idan Kamara
tests: add a test to check for duplicate command options
r14449 for option in entry[1]:
Augie Fackler
formatting: blacken the codebase...
r43346 if (option[0] and option[0] in seenshort) or (
option[1] and option[1] in seenlong
):
Robert Stanca
py3: use print_function in test-duplicateoptions.py
r28740 print("command '" + cmd + "' has duplicate option " + str(option))
Idan Kamara
tests: add a test to check for duplicate command options
r14449 seenshort.add(option[0])
seenlong.add(option[1])