我正在对一个函数进行单元测试,该函数将元素从 S3 对象转换为 pandas DataFrame,并且需要模拟从 boto3 返回的 StreamingBody 对象
文件.py
def object_to_df(self, key_name, dtypes):
s3_object = self.get_object(key_name=key_name)
if s3_object is not None:
object_df = pandas.read_csv(
io.BytesIO(s3_object["Body"].read()), dtype=dtypes
)
return object_df
Run Code Online (Sandbox Code Playgroud)
self.get_object(key_name) 的响应记录在此处
{
'Body': StreamingBody(),
'DeleteMarker': True|False,
'AcceptRanges': 'string',
...
}
Run Code Online (Sandbox Code Playgroud)
所以我需要模拟 StreamingBody() 对象并让我的模拟函数返回该对象。
测试.py
{
'Body': StreamingBody(),
'DeleteMarker': True|False,
'AcceptRanges': 'string',
...
}
Run Code Online (Sandbox Code Playgroud)
但我遇到了TypeError: 'StreamingBody' object is not subscriptable
有什么提示吗?
我正在通过此 GitHub Action部署 Firebase Cloud Function 。当我使用服务帐户从我自己的机器部署时,它工作正常。使用相同的服务帐户运行操作时,我遇到了以下错误。
最终错误:
错误:错误获取存储源:通用::未知:重试预算用尽(3次尝试):获取gcs源:从gcs解包源:源提取容器以非零状态退出:9
之前的日志:
未找到中央目录结尾签名。该文件不是一个 zipfile,或者它构成了一个多部分存档的磁盘。在后一种情况下,将在此存档的最后一个磁盘上找到中央目录和 zipfile 注释。解压缩:在 /tmp/source-archive.zip 或 /tmp/source-archive.zip.zip 之一中找不到 zipfile 目录,并且找不到 /tmp/source-archive.zip.ZIP,句号。
这是我的操作 yml:
name: Deploy
on:
pull_request:
branches:
- master
jobs:
integration-test:
name: Run tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: checkout repo and set up Node.js v12.x
uses: actions/setup-node@v1
with:
node-version: 12.x
- name: Install dependencies
run: cd ./functions/ && npm install
- id: deploy
name: Deploy my_function to Cloud Functions
uses: google-github-actions/deploy-cloud-functions@v0.1.2
with:
name: …Run Code Online (Sandbox Code Playgroud) github firebase google-cloud-platform google-cloud-functions github-actions
在进行更改之前,我需要检查给定表的下游依赖关系。我将如何列出依赖于 Specific_table 的任何 Redshift 表或视图?
我试过:
SELECT DISTINCT c_p.oid AS tbloid
,n_p.nspname AS schemaname
,c_p.relname AS NAME
,n_c.nspname AS refbyschemaname
,c_c.relname AS refbyname
,c_c.oid AS viewoid
FROM pg_class c_p
JOIN pg_depend d_p ON c_p.relfilenode = d_p.refobjid
JOIN pg_depend d_c ON d_p.objid = d_c.objid
JOIN pg_class c_c ON d_c.refobjid = c_c.relfilenode
LEFT JOIN pg_namespace n_p ON c_p.relnamespace = n_p.oid
LEFT JOIN pg_namespace n_c ON c_c.relnamespace = n_c.oid
WHERE d_c.deptype = 'i'::"char"
AND c_c.relkind = 'v'::"char"
and schemaname like 'actual_schema_name'
and name …Run Code Online (Sandbox Code Playgroud)