gristlabs_grist-core/app/server/lib
Paul Fitzpatrick dd0f1be117 (core) get all tests working under python3/gvisor
Summary:
This verifies that all existing tests are capable of running under python3/gvisor, and fixes the small issues that came up. It does not yet activate python3 tests on all diffs, only diffs that specifically request them.

 * Adds a suffix in test names and output directories for tests run with PYTHON_VERSION=3, so that results of the same test run with and without the flag can be aggregated cleanly.
 * Adds support for checkpointing to the gvisor sandbox adapter.
 * Prepares a checkpoint made after grist python code has loaded in the gvisor sandbox.
 * Changes how `DOC_URL` is passed to the sandbox, since it can no longer be passed in as an environment variable when using checkpoints.
 * Uses the checkpoint to speed up tests using the gvisor sandbox, otherwise a lot of tests need more time (especially on mac under docker).
 * Directs jenkins to run all tests with python2 and python3 when a new file `buildtools/changelogs/python.txt` is touched (this diff counts as touching that file).
 * Tweaks miscellaneous tests
   - some needed fixes exposed by slightly different timing
   - a small number actually give different results in py3 (removal of `u` prefixes).
   - some needed a little more time

The DOC_URL change is not the ultimate solution we want for DOC_URL. Eventually it should be a variable that gets updated, like the date perhaps. This is just a small pragmatic change to preserve existing behavior.

Tests are run mindlessly as py3, and for some tests it won't change anything (e.g. if they do not use NSandbox). Tests are not run in parallel, doubling overall test time.

Checkpoints could be useful in deployment, though this diff doesn't use them there.

The application of checkpoints doesn't check for other configuration like 3-versus-5-pipe that we don't actually use.

Python2 tests run using pynbox as always for now.

The diff got sufficiently bulky that I didn't tackle running py3 on "regular" diffs in it. My preference, given that most tests don't appear to stress the python side of things, would be to make a selection of the tests that do and a few wild cards, and run those tests on both pythons rather then all of them. For diffs making a significant python change, I'd propose touching buildtools/changelogs/python.txt for full tests. But this is a conversation in progress.

A total of 6886 tests ran on this diff.

Test Plan: this is a step in preparing tests for py3 transition

Reviewers: dsagal

Reviewed By: dsagal

Subscribers: dsagal

Differential Revision: https://phab.getgrist.com/D3066
2021-10-18 17:44:15 -04:00
..
ACLFormula.ts (core) add OWNERS='owners', EDITOR='editors', VIEWER='viewers' to condition formulas 2021-03-19 18:20:33 -04:00
ActionHistory.ts (core) do not look at content of recent actions when loading documents 2021-09-29 11:27:02 -04:00
ActionHistoryImpl.ts (core) do not look at content of recent actions when loading documents 2021-09-29 11:27:02 -04:00
ActionSummary.ts (core) tolerate table renames when displaying differences 2020-11-12 10:55:15 -05:00
ActiveDoc.ts (core) get all tests working under python3/gvisor 2021-10-18 17:44:15 -04:00
ActiveDocImport.ts (core) Add diff preview to Importer 2021-10-08 14:15:07 -07:00
AppEndpoint.ts (core) Adding import from google drive to the home screen 2021-08-05 20:46:11 +02:00
Authorizer.ts (core) For grist_sid*_status cookie, remember to set the path 2021-10-04 09:13:47 -04:00
BrowserSession.ts (core) Implement DiscourseConnect to enable easy sign-in to community forum 2021-10-01 11:24:22 -04:00
checksumFile.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
Client.ts (core) Simple localization support and currency selector. 2021-08-26 13:36:49 -07:00
Comm.js (core) Simple localization support and currency selector. 2021-08-26 13:36:49 -07:00
dbUtils.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
DiscourseConnect.ts (core) Implement DiscourseConnect to enable easy sign-in to community forum 2021-10-01 11:24:22 -04:00
DocApi.ts (core) get all tests working under python3/gvisor 2021-10-18 17:44:15 -04:00
DocApiTypes-ti.ts (core) Adding schema validation for records endpoint 2021-10-18 21:40:50 +02:00
DocApiTypes.ts (core) Adding schema validation for records endpoint 2021-10-18 21:40:50 +02:00
DocClients.ts (core) avoid censorship for one client clobbering data for another client 2021-10-07 23:21:07 -04:00
DocManager.ts (core) open documents without blocking on data engine 2021-10-01 10:18:56 -04:00
DocPluginData.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
DocPluginManager.ts (core) Move file import plugins into core/sandbox/grist 2021-08-09 18:37:14 +02:00
DocSession.ts (core) Simple localization support and currency selector. 2021-08-26 13:36:49 -07:00
DocSnapshots.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
DocStorage.ts (core) Use GristObjCode in CellValue 2021-10-11 14:11:32 +02:00
DocStorageManager.ts (core) uncheck FullCopy special when copying/forking a document 2021-04-29 08:56:54 -04:00
docUtils.d.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
docUtils.js (core) move home server into core 2020-07-21 20:39:10 -04:00
DocWorker.ts (core) Add diff preview to Importer 2021-10-08 14:15:07 -07:00
DocWorkerMap.ts (core) revive saml support and test against Auth0 2021-08-16 17:36:09 -04:00
ExcelFormatter.ts (core) Simple localization support and currency selector. 2021-08-26 13:36:49 -07:00
ExpandedQuery.ts (core) Use GristObjCode in CellValue 2021-10-11 14:11:32 +02:00
Export.ts (core) Relocate export urls to /download/ 2021-09-02 09:36:33 -07:00
ExportCSV.ts (core) Relocate export urls to /download/ 2021-09-02 09:36:33 -07:00
ExportXLSX.ts (core) Strip invalid characters from table name in excel import 2021-10-11 17:47:12 +02:00
expressWrap.ts (core) give more detailed reasons for access denied when memos are present 2021-02-15 17:02:24 -05:00
ExternalStorage.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
extractOrg.ts (core) Refactoring google drive plugin 2021-07-14 09:52:04 +02:00
FileParserElement.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
filterUtils.ts (core) uncheck FullCopy special when copying/forking a document 2021-04-29 08:56:54 -04:00
FlexServer.ts (core) Implement DiscourseConnect to enable easy sign-in to community forum 2021-10-01 11:24:22 -04:00
GoogleAuth.ts (core) Extending Google Drive integration scope 2021-10-01 10:47:12 +02:00
GoogleExport.ts (core) support python3 in grist-core, and running engine via docker and/or gvisor 2021-07-28 09:02:32 -04:00
GoogleImport.ts (core) Extending Google Drive integration scope 2021-10-01 10:47:12 +02:00
GranularAccess.ts (core) Use GristObjCode in CellValue 2021-10-11 14:11:32 +02:00
GristServer.ts (core) add a tool for deleting a user 2021-09-29 12:08:23 -04:00
gristSessions.ts (core) Implement DiscourseConnect to enable easy sign-in to community forum 2021-10-01 11:24:22 -04:00
guessExt.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
HashUtil.ts (core) add more detail to /compare endpoint 2020-09-18 16:31:29 -04:00
HostedMetadataManager.ts (core) revamp snapshot inventory 2020-10-30 13:52:46 -04:00
HostedStorageManager.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
IBilling.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
IChecksumStore.ts (core) revamp snapshot inventory 2020-10-30 13:52:46 -04:00
ICreate.ts (core) clean up a collection of small problems affecting grist-core 2021-08-17 21:44:50 -04:00
IDocStorageManager.ts (core) uncheck FullCopy special when copying/forking a document 2021-04-29 08:56:54 -04:00
idUtils.ts (core) start reconciling forking with granular access 2021-01-12 14:08:49 -05:00
IElectionStore.ts (core) move some material to core that slipped through in a rebase 2020-07-23 11:29:05 -04:00
initialDocSql.ts (core) open documents without blocking on data engine 2021-10-01 10:18:56 -04:00
INotifier.ts (core) add a tool for deleting a user 2021-09-29 12:08:23 -04:00
ISandbox.ts (core) get all tests working under python3/gvisor 2021-10-18 17:44:15 -04:00
IShell.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ITestingHooks-ti.ts (core) Implement DiscourseConnect to enable easy sign-in to community forum 2021-10-01 11:24:22 -04:00
ITestingHooks.ts (core) Implement DiscourseConnect to enable easy sign-in to community forum 2021-10-01 11:24:22 -04:00
log.ts (core) give instructions on using Grist with docker 2020-10-28 13:59:13 -04:00
manifest.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
MinimalLogin.ts (core) Implement DiscourseConnect to enable easy sign-in to community forum 2021-10-01 11:24:22 -04:00
NSandbox.ts (core) get all tests working under python3/gvisor 2021-10-18 17:44:15 -04:00
OnDemandActions.ts (core) Configure more comprehensive eslint rules for Typescript 2021-04-26 18:54:55 -04:00
PermissionInfo.ts (core) Add 'user' variable to trigger formulas 2021-07-15 15:18:32 -07:00
Permit.ts (core) revive saml support and test against Auth0 2021-08-16 17:36:09 -04:00
places.ts (core) fix docker packaging after core shuffle 2020-07-22 14:45:42 -04:00
PluginEndpoint.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
PluginManager.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
reportTimeTaken.ts (core) Log the time taken by decodeActionFromRow() operations. 2021-08-20 11:28:33 -04:00
requestUtils.ts (core) support python3 in grist-core, and running engine via docker and/or gvisor 2021-07-28 09:02:32 -04:00
RowAccess.ts (core) Add rules to eslint to better match our coding conventions. 2021-05-24 12:56:18 -04:00
SafePythonComponent.ts (core) Move file import plugins into core/sandbox/grist 2021-08-09 18:37:14 +02:00
SamlConfig.ts (core) Implement DiscourseConnect to enable easy sign-in to community forum 2021-10-01 11:24:22 -04:00
sandboxUtil.js (core) move home server into core 2020-07-21 20:39:10 -04:00
sendAppPage.ts (core) Extending Google Drive integration scope 2021-10-01 10:47:12 +02:00
ServerColumnGetters.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
ServerLocale.ts (core) Simple localization support and currency selector. 2021-08-26 13:36:49 -07:00
serverUtils.ts (core) add a python3 button 2021-09-16 10:06:04 -04:00
Sessions.ts (core) clean up a collection of small problems affecting grist-core 2021-08-17 21:44:50 -04:00
Sharing.ts (core) Starting to make webhooks more robust 2021-10-15 20:01:15 +02:00
shortDesc.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
shutdown.js (core) move home server into core 2020-07-21 20:39:10 -04:00
SQLiteDB.ts (core) Migrate import code from data engine to Node 2021-10-04 10:27:00 -07:00
TableMetadataLoader.ts (core) open documents without blocking on data engine 2021-10-01 10:18:56 -04:00
TagChecker.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
TestingHooks.ts (core) Implement DiscourseConnect to enable easy sign-in to community forum 2021-10-01 11:24:22 -04:00
Throttle.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
TimeQuery.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
Triggers.ts (core) Starting to make webhooks more robust 2021-10-15 20:01:15 +02:00
UnsafeNodeComponent.ts (core) move home server into core 2020-07-21 20:39:10 -04:00
uploads.ts (core) Extending Google Drive integration scope 2021-10-01 10:47:12 +02:00
WorkCoordinator.ts (core) move home server into core 2020-07-21 20:39:10 -04:00