Skip to content

Commit 9936ced

Browse files
authored
fix: Fix column resolver resource set (#23)
1 parent 536e163 commit 9936ced

File tree

2 files changed

+38
-3
lines changed

2 files changed

+38
-3
lines changed

cloudquery/sdk/scheduler/table_resolver.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
1-
from cloudquery.sdk.schema.table import Table
2-
from cloudquery.sdk.schema import Resource
31
from typing import Any, Generator
42

3+
from cloudquery.sdk.schema import Resource
4+
from cloudquery.sdk.schema.table import Table
5+
56

67
class TableResolver:
78
def __init__(self, table: Table, child_resolvers=[]) -> None:
@@ -31,7 +32,7 @@ def resolve_column(self, client, resource: Resource, column_name: str):
3132
resource.set(column_name, resource.item[column_name])
3233
else:
3334
if hasattr(resource.item, column_name):
34-
resource.set(column_name, resource.item[column_name])
35+
resource.set(column_name, getattr(resource.item, column_name))
3536

3637
def post_resource_resolve(self, client, resource):
3738
return

tests/scheduler/table_resolver.py

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
from dataclasses import dataclass
2+
3+
import pyarrow as pa
4+
5+
from cloudquery.sdk.scheduler import TableResolver
6+
from cloudquery.sdk.schema import Table, Resource, Column
7+
8+
9+
@dataclass
10+
class TestItem:
11+
test_column2: int = 1
12+
13+
14+
def test_table_resolver_resolve_column():
15+
test_table = Table(
16+
name="test_table",
17+
columns=[
18+
Column(name="test_column", type=pa.int64()),
19+
Column(name="test_column2", type=pa.int64()),
20+
],
21+
)
22+
resource_dict = Resource(table=test_table, parent=None, item={"test_column": 1})
23+
resource_obj = Resource(
24+
table=test_table, parent=None, item=TestItem(test_column2=2)
25+
)
26+
test_resolver = TableResolver(table=test_table, child_resolvers=[])
27+
test_resolver.resolve_column(
28+
client=None, resource=resource_dict, column_name="test_column"
29+
)
30+
test_resolver.resolve_column(
31+
client=None, resource=resource_obj, column_name="test_column2"
32+
)
33+
assert resource_dict.to_list_of_arr() == [[1], [None]]
34+
assert resource_obj.to_list_of_arr() == [[None], [2]]

0 commit comments

Comments
 (0)