4bf8479a43a493e2899953b7358c9464abbc3959
braney
  Wed Sep 23 17:15:55 2026 -0700
docent: regression scripts load sessions from text files, not from one machine's hgcentral, refs #38252

A named session runs only on the machine whose hgcentral holds it, so hgwbeta and the RR
answered "Could not find session".  The sessions are now text files in
regress/sessionFiles, saved with hgSession's own save to file, and the scripts load them
by raw GitHub URL.  rm36805, rm35580 and rm36340 pass on genome-test and hgwbeta.

rm36340's session held its custom tracks as a customTrash table on genome-test.  The
track source is a file of its own now, loaded through hgt.customText, without two
commented-out tracks whose URLs carry a password.  Its first check now asks for a custom
track row and the hub's row, and fails when the session file does not load.

A lifted session cannot be a file: it names its quickLift hub by a path on the server
that made it, and re-pointing it does not work (#38046).  rm37388, rm37389 and rm38272
build that lift in steps instead, the GenArk GCA_018466835.2 mitochondrion lifted to hg38,
and pass on genome-test and hgwbeta.  rm38272 also fails on genome.ucsc.edu (v503) at its
settings page, with the bug's own error, so it gains a release-ab proof line.

diff --git src/hg/utils/docent/tests/regress/rm37388.docent.yaml src/hg/utils/docent/tests/regress/rm37388.docent.yaml
index 195fc4bdb18..780da2fa940 100644
--- src/hg/utils/docent/tests/regress/rm37388.docent.yaml
+++ src/hg/utils/docent/tests/regress/rm37388.docent.yaml
@@ -1,33 +1,34 @@
 # #37388 -- clicking an item in a QuickLifted hub track sent hgc looking for a MySQL
 # database named after the source assembly:
 #
 #     Couldn't set connection database to GCA_018466835.2
 #
-# The session is kept for this one. It is braney/crash1 on genome-test, and it pins a
-# state that is genuinely awkward to build: hg38 at chrM:577-16569 with a quickLift hub
-# active, its chain from GCA_018466835.2, and an xenoRefGene track from that hub. Building
-# that in steps would mean attaching a hub and running a convert whose target is a
-# GenArk assembly, which is more moving parts than the bug needs.
+# The state is hg38 at chrM with a quickLift hub active, its chain from GCA_018466835.2, and
+# an xenoRefGene track from that hub.  It used to come from the saved session braney/crash1,
+# which only genome-test could load, so it is built in steps now; see the first steps.
 #
 # click: {track:, item:} follows the item's own map-box link, which is how hgc is reached.
 # A raw click on the image is swallowed by hgTracks' drag-select handler.
 proof:
   - "assertion-only 2026-09-04 -- written from the ticket after the fix had shipped"
 
 target: genome-test
 db: hg38
 reset: true
 fast: true
 steps:
-  - loadSession: {user: braney, name: crash1}
-
-  # The guard. A session that has been renamed or deleted is not an error: hgTracks
-  # answers 200 with an early-error page carrying no track image, and every noText check
-  # on that page passes. Without this line a deleted session turns this test green.
-  - expect: {noText: "Could not find session"}
+  # The lifted view is built in steps, not loaded from a session.  A quickLift session names
+  # its hub by a path on the server that made it, and re-pointing it does not work (#38046),
+  # so braney/crash1 ran only on genome-test.  These steps run on any server.  They lift the
+  # mitochondrion of GenArk GCA_018466835.2 to hg38, the state crash1 held.
+  - goto: "/cgi-bin/hgTracks?db=GCA_018466835.2&position=chrMT_JAGYVI020000079v1_random:1-16566&pix=1100"
+  - expect: {rows: [xenoRefGene]}
+  - goto: "/cgi-bin/hgConvert?db=GCA_018466835.2&position=chrMT_JAGYVI020000079v1_random:1-16566&hglft_toOrg=Human&hglft_toDb=hg38&doQuickLift=on&hglft_doConvert=submit"
+  - click: 'a[href*="hgTracks?"][href*="quickLift."]'
+  - expect: {rows: [xenoRefGene], text: "chrM"}
 
   - click: {track: xenoRefGene, item: "NM_126741.2"}
 
   # hgc has no track image, so there is no row to assert on here: the whole check is that
   # the page is the details page and not the early-error page the bug produced.
   - expect: {noText: "Couldn't set connection database"}