updated to use .env, then pull idToken and clientID
This commit is contained in:
@@ -33,7 +33,7 @@ class BrowserSessionTests(unittest.TestCase):
|
||||
values["costco-x-wcs-clientId"],
|
||||
)
|
||||
|
||||
def test_load_costco_browser_headers_reads_exact_auth_key(self):
|
||||
def test_load_costco_browser_headers_reads_id_token_and_client_id(self):
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
profile_dir = Path(tmpdir)
|
||||
storage_dir = profile_dir / "storage" / "default" / "https+++www.costco.com" / "ls"
|
||||
@@ -44,12 +44,17 @@ class BrowserSessionTests(unittest.TestCase):
|
||||
connection.execute("CREATE TABLE data (key TEXT, value TEXT)")
|
||||
connection.execute(
|
||||
"INSERT INTO data (key, value) VALUES (?, ?)",
|
||||
("costco-x-authorization", "Bearer header.payload.signature"),
|
||||
("idToken", "header.payload.signature"),
|
||||
)
|
||||
connection.execute(
|
||||
"INSERT INTO data (key, value) VALUES (?, ?)",
|
||||
("clientID", "4900eb1f-0c10-4bd9-99c3-c59e6c1ecebf"),
|
||||
)
|
||||
|
||||
headers = scrape_costco.load_costco_browser_headers(
|
||||
profile_dir,
|
||||
client_id="4900eb1f-0c10-4bd9-99c3-c59e6c1ecebf",
|
||||
authorization="",
|
||||
client_id="",
|
||||
client_identifier="481b1aec-aa3b-454b-b81b-48187e28f205",
|
||||
)
|
||||
|
||||
@@ -63,7 +68,7 @@ class BrowserSessionTests(unittest.TestCase):
|
||||
headers["client-identifier"],
|
||||
)
|
||||
|
||||
def test_load_costco_browser_headers_falls_back_to_exact_header_blob(self):
|
||||
def test_load_costco_browser_headers_prefers_env_values(self):
|
||||
with tempfile.TemporaryDirectory() as tmpdir:
|
||||
profile_dir = Path(tmpdir)
|
||||
storage_dir = profile_dir / "storage" / "default" / "https+++www.costco.com" / "ls"
|
||||
@@ -74,19 +79,22 @@ class BrowserSessionTests(unittest.TestCase):
|
||||
connection.execute("CREATE TABLE data (key TEXT, value TEXT)")
|
||||
connection.execute(
|
||||
"INSERT INTO data (key, value) VALUES (?, ?)",
|
||||
(
|
||||
"headers",
|
||||
'{"costco-x-authorization":"Bearer header.payload.signature"}',
|
||||
),
|
||||
("idToken", "storage.payload.signature"),
|
||||
)
|
||||
connection.execute(
|
||||
"INSERT INTO data (key, value) VALUES (?, ?)",
|
||||
("clientID", "4900eb1f-0c10-4bd9-99c3-c59e6c1ecebf"),
|
||||
)
|
||||
|
||||
headers = scrape_costco.load_costco_browser_headers(
|
||||
profile_dir,
|
||||
client_id="4900eb1f-0c10-4bd9-99c3-c59e6c1ecebf",
|
||||
authorization="Bearer env.payload.signature",
|
||||
client_id="env-client-id",
|
||||
client_identifier="481b1aec-aa3b-454b-b81b-48187e28f205",
|
||||
)
|
||||
|
||||
self.assertEqual("Bearer header.payload.signature", headers["costco-x-authorization"])
|
||||
self.assertEqual("Bearer env.payload.signature", headers["costco-x-authorization"])
|
||||
self.assertEqual("env-client-id", headers["costco-x-wcs-clientId"])
|
||||
|
||||
def test_scrape_costco_prompts_for_profile_dir_when_autodiscovery_fails(self):
|
||||
with mock.patch.object(
|
||||
@@ -101,6 +109,7 @@ class BrowserSessionTests(unittest.TestCase):
|
||||
scrape_costco,
|
||||
"load_config",
|
||||
return_value={
|
||||
"authorization": "",
|
||||
"client_id": "4900eb1f-0c10-4bd9-99c3-c59e6c1ecebf",
|
||||
"client_identifier": "481b1aec-aa3b-454b-b81b-48187e28f205",
|
||||
},
|
||||
|
||||
@@ -414,6 +414,7 @@ class CostcoPipelineTests(unittest.TestCase):
|
||||
scrape_costco,
|
||||
"load_config",
|
||||
return_value={
|
||||
"authorization": "",
|
||||
"client_id": "4900eb1f-0c10-4bd9-99c3-c59e6c1ecebf",
|
||||
"client_identifier": "481b1aec-aa3b-454b-b81b-48187e28f205",
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user