Skip to content

Commit

Permalink
Update response message if dataframe contains Issues column
Browse files Browse the repository at this point in the history
  • Loading branch information
rjambrecic committed Jul 25, 2024
1 parent 94cfa3d commit fc9a9c4
Show file tree
Hide file tree
Showing 3 changed files with 121 additions and 2 deletions.
6 changes: 5 additions & 1 deletion google_sheets/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -392,9 +392,10 @@ async def process_data(
target_resource, # type: ignore
)

issues_present = "Issues" in validated_df.columns
values = [validated_df.columns.tolist(), *validated_df.values.tolist()]

return GoogleSheetValues(values=values)
return GoogleSheetValues(values=values, issues_present=issues_present)


async def process_campaigns_and_ad_groups(
Expand Down Expand Up @@ -544,5 +545,8 @@ async def process_spreadsheet(
sheet_values=processed_values,
)
response += f"Sheet with the name '{title}' has been created successfully.\n"
if processed_values.issues_present:
response += """But there are issues present in the data.
Please check the 'Issues' column and correct the data accordingly.\n\n"""

return response
5 changes: 5 additions & 0 deletions google_sheets/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,8 @@ class GoogleSheetValues(BaseModel):
values: List[List[Any]] = Field(
..., title="Values", description="Values to be written to the Google Sheet."
)
issues_present: bool = Field(
default=False,
title="Issues Present",
description="Whether any issues are present.",
)
112 changes: 111 additions & 1 deletion tests/app/test_app.py
Original file line number Diff line number Diff line change
Expand Up @@ -294,7 +294,7 @@ class TestProcessData:
],
)
@pytest.mark.asyncio()
async def test_process_data(
async def test_process_data_keywords(
self,
template_sheet_values: GoogleSheetValues,
new_campaign_sheet_values: GoogleSheetValues,
Expand Down Expand Up @@ -328,6 +328,116 @@ async def test_process_data(
)
assert detail in exc.value.detail

@pytest.mark.asyncio()
async def test_process_data_ads(self) -> None:
template_sheet_values = GoogleSheetValues(
values=[
[
"Final URL",
"Headline 1",
"Headline 2",
"Headline 3",
"Description Line 1",
"Description Line 2",
"Path 1",
"Path 2",
],
[
"https://www.example.com/from",
"H" * 31,
"Headline 2",
"Headline 3",
"Description Line 1",
"Description Line 2",
"Path 1",
"Path 2",
],
]
)
new_campaign_sheet_values = GoogleSheetValues(
values=[
[
"Country",
"Station From",
"Station To",
"Final Url From",
"Final Url To",
],
[
"India",
"Delhi",
"Mumbai",
"https://www.example.com/from",
"https://www.example.com/to",
],
]
)
merged_campaigns_ad_groups_df = pd.DataFrame(
{
"Campaign Name": [
"INSERT_COUNTRY - INSERT_STATION_FROM - INSERT_STATION_TO"
],
"Ad Group Name": ["INSERT_STATION_FROM - INSERT_STATION_TO"],
"Match Type": ["Exact"],
}
)
result = await process_data(
template_sheet_values=template_sheet_values,
new_campaign_sheet_values=new_campaign_sheet_values,
merged_campaigns_ad_groups_df=merged_campaigns_ad_groups_df,
target_resource="ad",
)

expected = GoogleSheetValues(
values=[
[
"Issues",
"Campaign Name",
"Ad Group Name",
"Match Type",
"Final URL",
"Headline 1",
"Headline 2",
"Headline 3",
"Description Line 1",
"Description Line 2",
"Path 1",
"Path 2",
],
[
"Headline length should be less than 30 characters, found 31 in column Headline 1.\n",
"India - Delhi - Mumbai",
"Delhi - Mumbai",
"Exact",
"https://www.example.com/from",
"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH",
"Headline 2",
"Headline 3",
"Description Line 1",
"Description Line 2",
"Path 1",
"Path 2",
],
[
"Headline length should be less than 30 characters, found 31 in column Headline 1.\n",
"India - Delhi - Mumbai",
"Mumbai - Delhi",
"Exact",
"https://www.example.com/to",
"HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH",
"Headline 2",
"Headline 3",
"Description Line 1",
"Description Line 2",
"Path 1",
"Path 2",
],
],
issues_present=True,
)

assert result.model_dump() == expected.model_dump()


class TestOpenAPIJSON:
def test_openapi(self) -> None:
Expand Down

0 comments on commit fc9a9c4

Please sign in to comment.