Skip to content

Commit e7e86cc

Browse files
Prajwal  Kiran KumarPrajwal  Kiran Kumar
authored andcommitted
Add unit tests to dataset.py
1 parent 8c3f266 commit e7e86cc

File tree

3 files changed

+361
-12
lines changed

3 files changed

+361
-12
lines changed

.github/workflows/ci.yaml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -66,12 +66,12 @@ jobs:
6666
6767
- name: Test with pytest
6868
run: |
69-
poetry run coverage run -m pytest
70-
71-
# - name: Report coverage with Codecov
72-
# if: github.event_name == 'push' && matrix.platform == 'ubuntu-latest'
73-
# uses: codecov/codecov-action@v3
74-
# with:
75-
# token: ${{ secrets.CODECOV_TOKEN }}
76-
# file: ./coverage.xml # optional
77-
# flags: unittests-${{ matrix.python-version }} # optional
69+
poetry run coverage run -m pytest --cov=./ --cov-report=xml
70+
- name: Upload coverage to Codecov
71+
uses: codecov/[email protected]
72+
with:
73+
token: ${{ secrets.CODECOV_TOKEN }}
74+
directory: ./coverage/reports/
75+
env_vars: OS,PYTHON
76+
files: ./coverage.xml
77+
flags: unittests

tests/conftest.py

Lines changed: 81 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
from datetime import datetime
2929

3030
from pytest_asyncio import fixture
31-
31+
from servicex.python_dataset import PythonDataset
3232
from servicex.models import (
3333
TransformRequest,
3434
ResultDestination,
@@ -37,6 +37,15 @@
3737
TransformedResults,
3838
)
3939

40+
from servicex.configuration import Configuration
41+
from servicex.query_cache import QueryCache
42+
from servicex.dataset_identifier import FileListDataset
43+
from servicex.minio_adapter import MinioAdapter
44+
45+
import tempfile
46+
import pandas as pd
47+
import os
48+
4049

4150
@fixture
4251
def transform_request() -> TransformRequest:
@@ -50,6 +59,61 @@ def transform_request() -> TransformRequest:
5059
) # type: ignore
5160

5261

62+
@fixture
63+
def transform_request_python_dataset(dummy_parquet_file) -> TransformRequest:
64+
return TransformRequest(
65+
title="Test submission",
66+
selection="ICAgICAgICBkZWYgZm9vKCk6CiAgICAgICAgICAgIHJldHVybgo=",
67+
codegen="uproot",
68+
result_destination=ResultDestination.object_store, # type: ignore
69+
result_format=ResultFormat.parquet, # type: ignore,
70+
file_list=[dummy_parquet_file],
71+
) # type: ignore
72+
73+
74+
@fixture
75+
def minio_adapter() -> MinioAdapter:
76+
return MinioAdapter("localhost", False, "access_key", "secret_key", "bucket")
77+
78+
79+
@fixture
80+
def python_dataset(dummy_parquet_file):
81+
did = FileListDataset(dummy_parquet_file)
82+
with tempfile.TemporaryDirectory() as temp_dir:
83+
config = Configuration(cache_path=temp_dir, api_endpoints=[]) # type: ignore
84+
cache = QueryCache(config)
85+
dataset = PythonDataset(
86+
title="Test submission",
87+
dataset_identifier=did,
88+
codegen="uproot",
89+
result_format=ResultFormat.parquet, # type: ignore
90+
query_cache=cache,
91+
) # type: ignore
92+
93+
def foo():
94+
return
95+
96+
dataset.with_uproot_function(foo)
97+
dataset.configuration = config
98+
yield dataset
99+
100+
101+
@fixture
102+
def transformed_result_python_dataset(dummy_parquet_file) -> TransformedResults:
103+
return TransformedResults(
104+
hash="289e90f6fe3780253af35c428b784ac22d3ee9200a7581b8f0a9bdcc5ae93479",
105+
title="Test submission",
106+
codegen="uproot",
107+
request_id="b8c508d0-ccf2-4deb-a1f7-65c839eebabf",
108+
submit_time=datetime.now(),
109+
data_dir="/foo/bar",
110+
file_list=[dummy_parquet_file],
111+
signed_url_list=[],
112+
files=1,
113+
result_format=ResultFormat.parquet,
114+
)
115+
116+
53117
@fixture
54118
def transform_status_response() -> dict:
55119
return {
@@ -115,16 +179,30 @@ def completed_status() -> TransformStatus:
115179

116180

117181
@fixture
118-
def transformed_result() -> TransformedResults:
182+
def transformed_result(dummy_parquet_file) -> TransformedResults:
119183
return TransformedResults(
120184
hash="123-4455",
121185
title="Test",
122186
codegen="uproot",
123187
request_id="123-45-6789",
124188
submit_time=datetime.now(),
125189
data_dir="/foo/bar",
126-
file_list=["/tmp/1.root", "/tmp/2.root"],
190+
file_list=[dummy_parquet_file],
127191
signed_url_list=[],
128192
files=2,
129193
result_format=ResultFormat.root_file,
130194
)
195+
196+
197+
@fixture
198+
def dummy_parquet_file():
199+
data = {'column1': [1, 2, 3, 4],
200+
'column2': ['A', 'B', 'C', 'D']}
201+
df = pd.DataFrame(data)
202+
parquet_file_path = '1.parquet'
203+
df.to_parquet(parquet_file_path, index=False)
204+
205+
yield parquet_file_path
206+
207+
if os.path.exists(parquet_file_path):
208+
os.remove(parquet_file_path)

0 commit comments

Comments
 (0)