comparison tests/test-storage.py @ 43076:2372284d9457

formatting: blacken the codebase This is using my patch to black (https://github.com/psf/black/pull/826) so we don't un-wrap collection literals. Done with: hg files 'set:**.py - mercurial/thirdparty/** - "contrib/python-zstandard/**"' | xargs black -S # skip-blame mass-reformatting only # no-check-commit reformats foo_bar functions Differential Revision: https://phab.mercurial-scm.org/D6971
author Augie Fackler <augie@google.com>
date Sun, 06 Oct 2019 09:45:02 -0400
parents 1bf3e6041e2c
children 6000f5b25c9b
comparison
equal deleted inserted replaced
43075:57875cf423c9 43076:2372284d9457
11 transaction, 11 transaction,
12 ui as uimod, 12 ui as uimod,
13 vfs as vfsmod, 13 vfs as vfsmod,
14 ) 14 )
15 15
16 from mercurial.testing import ( 16 from mercurial.testing import storage as storagetesting
17 storage as storagetesting,
18 )
19 17
20 try: 18 try:
21 from hgext import ( 19 from hgext import sqlitestore
22 sqlitestore,
23 )
24 except ImportError: 20 except ImportError:
25 sqlitestore = None 21 sqlitestore = None
26 22
27 try: 23 try:
28 import sqlite3 24 import sqlite3
25
29 if sqlite3.sqlite_version_info < (3, 8, 3): 26 if sqlite3.sqlite_version_info < (3, 8, 3):
30 # WITH clause not supported 27 # WITH clause not supported
31 sqlitestore = None 28 sqlitestore = None
32 except ImportError: 29 except ImportError:
33 pass 30 pass
34 31
35 try: 32 try:
36 from mercurial import zstd 33 from mercurial import zstd
34
37 zstd.__version__ 35 zstd.__version__
38 except ImportError: 36 except ImportError:
39 zstd = None 37 zstd = None
40 38
41 STATE = { 39 STATE = {
42 'lastindex': 0, 40 'lastindex': 0,
43 'ui': uimod.ui(), 41 'ui': uimod.ui(),
44 'vfs': vfsmod.vfs(b'.', realpath=True), 42 'vfs': vfsmod.vfs(b'.', realpath=True),
45 } 43 }
46 44
45
47 def makefilefn(self): 46 def makefilefn(self):
48 """Factory for filelog instances.""" 47 """Factory for filelog instances."""
49 fl = filelog.filelog(STATE['vfs'], b'filelog-%d' % STATE['lastindex']) 48 fl = filelog.filelog(STATE['vfs'], b'filelog-%d' % STATE['lastindex'])
50 STATE['lastindex'] += 1 49 STATE['lastindex'] += 1
51 return fl 50 return fl
52 51
52
53 def maketransaction(self): 53 def maketransaction(self):
54 vfsmap = {b'plain': STATE['vfs'], b'store': STATE['vfs']} 54 vfsmap = {b'plain': STATE['vfs'], b'store': STATE['vfs']}
55 55
56 return transaction.transaction(STATE['ui'].warn, STATE['vfs'], vfsmap, 56 return transaction.transaction(
57 b'journal', b'undo') 57 STATE['ui'].warn, STATE['vfs'], vfsmap, b'journal', b'undo'
58 )
58 59
59 def addrawrevision(self, fl, tr, node, p1, p2, linkrev, rawtext=None, 60
60 delta=None, censored=False, ellipsis=False, extstored=False): 61 def addrawrevision(
62 self,
63 fl,
64 tr,
65 node,
66 p1,
67 p2,
68 linkrev,
69 rawtext=None,
70 delta=None,
71 censored=False,
72 ellipsis=False,
73 extstored=False,
74 ):
61 flags = 0 75 flags = 0
62 76
63 if censored: 77 if censored:
64 flags |= revlog.REVIDX_ISCENSORED 78 flags |= revlog.REVIDX_ISCENSORED
65 if ellipsis: 79 if ellipsis:
68 flags |= revlog.REVIDX_EXTSTORED 82 flags |= revlog.REVIDX_EXTSTORED
69 83
70 if rawtext is not None: 84 if rawtext is not None:
71 fl._revlog.addrawrevision(rawtext, tr, linkrev, p1, p2, node, flags) 85 fl._revlog.addrawrevision(rawtext, tr, linkrev, p1, p2, node, flags)
72 elif delta is not None: 86 elif delta is not None:
73 fl._revlog.addrawrevision(rawtext, tr, linkrev, p1, p2, node, flags, 87 fl._revlog.addrawrevision(
74 cachedelta=delta) 88 rawtext, tr, linkrev, p1, p2, node, flags, cachedelta=delta
89 )
75 else: 90 else:
76 raise error.Abort('must supply rawtext or delta arguments') 91 raise error.Abort('must supply rawtext or delta arguments')
77 92
78 # We may insert bad data. Clear caches to prevent e.g. cache hits to 93 # We may insert bad data. Clear caches to prevent e.g. cache hits to
79 # bypass hash verification. 94 # bypass hash verification.
80 fl._revlog.clearcaches() 95 fl._revlog.clearcaches()
81 96
97
82 # Assigning module-level attributes that inherit from unittest.TestCase 98 # Assigning module-level attributes that inherit from unittest.TestCase
83 # is all that is needed to register tests. 99 # is all that is needed to register tests.
84 filelogindextests = storagetesting.makeifileindextests(makefilefn, 100 filelogindextests = storagetesting.makeifileindextests(
85 maketransaction, 101 makefilefn, maketransaction, addrawrevision
86 addrawrevision) 102 )
87 filelogdatatests = storagetesting.makeifiledatatests(makefilefn, 103 filelogdatatests = storagetesting.makeifiledatatests(
88 maketransaction, 104 makefilefn, maketransaction, addrawrevision
89 addrawrevision) 105 )
90 filelogmutationtests = storagetesting.makeifilemutationtests(makefilefn, 106 filelogmutationtests = storagetesting.makeifilemutationtests(
91 maketransaction, 107 makefilefn, maketransaction, addrawrevision
92 addrawrevision) 108 )
109
93 110
94 def makesqlitefile(self): 111 def makesqlitefile(self):
95 path = STATE['vfs'].join(b'db-%d.db' % STATE['lastindex']) 112 path = STATE['vfs'].join(b'db-%d.db' % STATE['lastindex'])
96 STATE['lastindex'] += 1 113 STATE['lastindex'] += 1
97 114
99 116
100 compression = b'zstd' if zstd else b'zlib' 117 compression = b'zstd' if zstd else b'zlib'
101 118
102 return sqlitestore.sqlitefilestore(db, b'dummy-path', compression) 119 return sqlitestore.sqlitefilestore(db, b'dummy-path', compression)
103 120
104 def addrawrevisionsqlite(self, fl, tr, node, p1, p2, linkrev, rawtext=None, 121
105 delta=None, censored=False, ellipsis=False, 122 def addrawrevisionsqlite(
106 extstored=False): 123 self,
124 fl,
125 tr,
126 node,
127 p1,
128 p2,
129 linkrev,
130 rawtext=None,
131 delta=None,
132 censored=False,
133 ellipsis=False,
134 extstored=False,
135 ):
107 flags = 0 136 flags = 0
108 137
109 if censored: 138 if censored:
110 flags |= sqlitestore.FLAG_CENSORED 139 flags |= sqlitestore.FLAG_CENSORED
111 140
112 if ellipsis | extstored: 141 if ellipsis | extstored:
113 raise error.Abort(b'support for ellipsis and extstored flags not ' 142 raise error.Abort(
114 b'supported') 143 b'support for ellipsis and extstored flags not ' b'supported'
144 )
115 145
116 if rawtext is not None: 146 if rawtext is not None:
117 fl._addrawrevision(node, rawtext, tr, linkrev, p1, p2, flags=flags) 147 fl._addrawrevision(node, rawtext, tr, linkrev, p1, p2, flags=flags)
118 elif delta is not None: 148 elif delta is not None:
119 fl._addrawrevision(node, rawtext, tr, linkrev, p1, p2, 149 fl._addrawrevision(
120 storedelta=delta, flags=flags) 150 node, rawtext, tr, linkrev, p1, p2, storedelta=delta, flags=flags
151 )
121 else: 152 else:
122 raise error.Abort(b'must supply rawtext or delta arguments') 153 raise error.Abort(b'must supply rawtext or delta arguments')
123 154
155
124 if sqlitestore is not None: 156 if sqlitestore is not None:
125 sqlitefileindextests = storagetesting.makeifileindextests( 157 sqlitefileindextests = storagetesting.makeifileindextests(
126 makesqlitefile, maketransaction, addrawrevisionsqlite) 158 makesqlitefile, maketransaction, addrawrevisionsqlite
159 )
127 sqlitefiledatatests = storagetesting.makeifiledatatests( 160 sqlitefiledatatests = storagetesting.makeifiledatatests(
128 makesqlitefile, maketransaction, addrawrevisionsqlite) 161 makesqlitefile, maketransaction, addrawrevisionsqlite
162 )
129 sqlitefilemutationtests = storagetesting.makeifilemutationtests( 163 sqlitefilemutationtests = storagetesting.makeifilemutationtests(
130 makesqlitefile, maketransaction, addrawrevisionsqlite) 164 makesqlitefile, maketransaction, addrawrevisionsqlite
165 )
131 166
132 if __name__ == '__main__': 167 if __name__ == '__main__':
133 silenttestrunner.main(__name__) 168 silenttestrunner.main(__name__)