|
337 | 337 | }
|
338 | 338 | """
|
339 | 339 |
|
| 340 | +GET_ASSET_PARTITIONS_CONNECTION = """ |
| 341 | + query AssetNodeQuery($assetKeys: [AssetKeyInput!], $limit: Int!, $ascending: Boolean!, $cursor: String) { |
| 342 | + assetNodes(assetKeys: $assetKeys) { |
| 343 | + id |
| 344 | + partitionKeyConnection(limit: $limit, ascending: $ascending, cursor: $cursor) { |
| 345 | + results |
| 346 | + cursor |
| 347 | + hasMore |
| 348 | + } |
| 349 | + } |
| 350 | + } |
| 351 | +""" |
| 352 | + |
340 | 353 | GET_PARTITIONS_BY_DIMENSION = """
|
341 | 354 | query AssetNodeQuery($assetKeys: [AssetKeyInput!], $startIdx: Int, $endIdx: Int) {
|
342 | 355 | assetNodes(assetKeys: $assetKeys) {
|
@@ -1418,6 +1431,70 @@ def test_asset_partitions_in_pipeline(self, graphql_context: WorkspaceRequestCon
|
1418 | 1431 | assert asset_node["partitionKeys"][0] == "2021-05-05-01:00"
|
1419 | 1432 | assert asset_node["partitionKeys"][1] == "2021-05-05-02:00"
|
1420 | 1433 |
|
| 1434 | + def test_asset_partition_key_connection(self, graphql_context: WorkspaceRequestContext): |
| 1435 | + result = execute_dagster_graphql( |
| 1436 | + graphql_context, |
| 1437 | + GET_ASSET_PARTITIONS_CONNECTION, |
| 1438 | + variables={ |
| 1439 | + "assetKeys": [ |
| 1440 | + {"path": ["not_included_asset"]}, |
| 1441 | + {"path": ["upstream_static_partitioned_asset"]}, |
| 1442 | + ], |
| 1443 | + "limit": 2, |
| 1444 | + "ascending": True, |
| 1445 | + }, |
| 1446 | + ) |
| 1447 | + |
| 1448 | + assert result.data and result.data["assetNodes"] |
| 1449 | + assert len(result.data["assetNodes"]) == 2 |
| 1450 | + unpartitioned_asset_node = result.data["assetNodes"][0] |
| 1451 | + assert unpartitioned_asset_node["partitionKeyConnection"] is None |
| 1452 | + partitioned_asset_node = result.data["assetNodes"][1] |
| 1453 | + partition_key_conn = partitioned_asset_node["partitionKeyConnection"] |
| 1454 | + assert partition_key_conn["hasMore"] |
| 1455 | + assert len(partition_key_conn["results"]) == 2 |
| 1456 | + assert partition_key_conn["results"] == ["a", "b"] |
| 1457 | + cursor = partition_key_conn["cursor"] |
| 1458 | + |
| 1459 | + result = execute_dagster_graphql( |
| 1460 | + graphql_context, |
| 1461 | + GET_ASSET_PARTITIONS_CONNECTION, |
| 1462 | + variables={ |
| 1463 | + "assetKeys": [ |
| 1464 | + {"path": ["upstream_static_partitioned_asset"]}, |
| 1465 | + ], |
| 1466 | + "limit": 10, |
| 1467 | + "ascending": True, |
| 1468 | + "cursor": cursor, |
| 1469 | + }, |
| 1470 | + ) |
| 1471 | + assert result.data and result.data["assetNodes"] |
| 1472 | + assert len(result.data["assetNodes"]) == 1 |
| 1473 | + partitioned_asset_node = result.data["assetNodes"][0] |
| 1474 | + partition_key_conn = partitioned_asset_node["partitionKeyConnection"] |
| 1475 | + assert not partition_key_conn["hasMore"] |
| 1476 | + assert len(partition_key_conn["results"]) == 4 |
| 1477 | + assert partition_key_conn["results"] == ["c", "d", "e", "f"] |
| 1478 | + |
| 1479 | + result = execute_dagster_graphql( |
| 1480 | + graphql_context, |
| 1481 | + GET_ASSET_PARTITIONS_CONNECTION, |
| 1482 | + variables={ |
| 1483 | + "assetKeys": [ |
| 1484 | + {"path": ["upstream_static_partitioned_asset"]}, |
| 1485 | + ], |
| 1486 | + "limit": 10, |
| 1487 | + "ascending": False, |
| 1488 | + }, |
| 1489 | + ) |
| 1490 | + assert result.data and result.data["assetNodes"] |
| 1491 | + assert len(result.data["assetNodes"]) == 1 |
| 1492 | + partitioned_asset_node = result.data["assetNodes"][0] |
| 1493 | + partition_key_conn = partitioned_asset_node["partitionKeyConnection"] |
| 1494 | + assert not partition_key_conn["hasMore"] |
| 1495 | + assert len(partition_key_conn["results"]) == 6 |
| 1496 | + assert partition_key_conn["results"] == ["f", "e", "d", "c", "b", "a"] |
| 1497 | + |
1421 | 1498 | def test_latest_materialization_per_partition(self, graphql_context: WorkspaceRequestContext):
|
1422 | 1499 | _create_partitioned_run(graphql_context, "partition_materialization_job", partition_key="c")
|
1423 | 1500 | _create_partitioned_run(graphql_context, "partition_materialization_job", partition_key="d")
|
|
0 commit comments