Skip to content

Commit eb90df5

Browse files
Jules was unable to complete the task in time. Please review the work done so far and provide feedback for Jules to continue.
1 parent 9a57e6f commit eb90df5

File tree

5 files changed

+139
-66
lines changed

5 files changed

+139
-66
lines changed

examples/advanced_operations/tests/test_add_call_ad.py

Lines changed: 55 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,8 @@
1717
import argparse
1818
import unittest
1919
from unittest import mock
20+
import warnings
2021

21-
from examples.advanced_operations.add_call_ad import main
2222
from google.ads.googleads.client import GoogleAdsClient
2323
from google.ads.googleads.errors import GoogleAdsException
2424

@@ -66,29 +66,33 @@ def test_main(self, mock_load_from_storage):
6666
)
6767

6868
# Call the main function by simulating command-line execution
69-
with mock.patch("sys.argv", [
70-
"add_call_ad.py",
71-
"-c", mock_args.customer_id,
72-
"-a", mock_args.ad_group_id,
73-
"-n", mock_args.phone_number,
74-
"-p", mock_args.phone_country,
75-
"-v", mock_args.conversion_action_id,
76-
]), mock.patch(
77-
"examples.advanced_operations.add_call_ad.argparse.ArgumentParser"
78-
) as mock_argparse:
79-
# Mock parse_args to return the predefined mock_args
80-
mock_argparse_instance = mock_argparse.return_value
81-
mock_argparse_instance.parse_args.return_value = mock_args
82-
83-
# Import and run the main function from the script's __main__ block
84-
from examples.advanced_operations import add_call_ad
85-
86-
# We need to reload the module to ensure that the main function
87-
# is executed in the context of the test case with the mocked objects.
88-
# import importlib
89-
# importlib.reload(add_call_ad)
90-
import runpy
91-
runpy.run_module("examples.advanced_operations.add_call_ad", run_name="__main__")
69+
with warnings.catch_warnings():
70+
warnings.filterwarnings(
71+
"ignore",
72+
message="'.*add_call_ad' found in sys.modules after import of package 'examples.advanced_operations', but prior to execution of 'examples.advanced_operations.add_call_ad'",
73+
category=RuntimeWarning,
74+
)
75+
with mock.patch("sys.argv", [
76+
"add_call_ad.py",
77+
"-c", mock_args.customer_id,
78+
"-a", mock_args.ad_group_id,
79+
"-n", mock_args.phone_number,
80+
"-p", mock_args.phone_country,
81+
"-v", mock_args.conversion_action_id,
82+
]), mock.patch(
83+
"examples.advanced_operations.add_call_ad.argparse.ArgumentParser"
84+
) as mock_argparse:
85+
# Mock parse_args to return the predefined mock_args
86+
mock_argparse_instance = mock_argparse.return_value
87+
mock_argparse_instance.parse_args.return_value = mock_args
88+
89+
# Import and run the main function from the script's __main__ block
90+
# We need to reload the module to ensure that the main function
91+
# is executed in the context of the test case with the mocked objects.
92+
# import importlib
93+
# importlib.reload(add_call_ad)
94+
import runpy
95+
runpy.run_module("examples.advanced_operations.add_call_ad", run_name="__main__")
9296

9397
# Assert that the necessary methods were called
9498
mock_load_from_storage.assert_called_once_with(version="v20")
@@ -146,28 +150,33 @@ def test_main_google_ads_exception(self, mock_load_from_storage):
146150

147151
# Call the main function by simulating command-line execution
148152
# and assert that it exits with code 1
149-
with mock.patch("sys.argv", [
150-
"add_call_ad.py",
151-
"-c", mock_args.customer_id,
152-
"-a", mock_args.ad_group_id,
153-
"-n", mock_args.phone_number,
154-
"-p", mock_args.phone_country,
155-
"-v", mock_args.conversion_action_id,
156-
]), mock.patch(
157-
"examples.advanced_operations.add_call_ad.argparse.ArgumentParser"
158-
) as mock_argparse:
159-
# Mock parse_args to return the predefined mock_args
160-
mock_argparse_instance = mock_argparse.return_value
161-
mock_argparse_instance.parse_args.return_value = mock_args
162-
163-
# Import and run the main function from the script's __main__ block
164-
from examples.advanced_operations import add_call_ad
165-
166-
import runpy
167-
with self.assertRaises(SystemExit) as cm:
168-
runpy.run_module("examples.advanced_operations.add_call_ad", run_name="__main__")
169-
170-
self.assertEqual(cm.exception.code, 1)
153+
with warnings.catch_warnings():
154+
warnings.filterwarnings(
155+
"ignore",
156+
message="'.*add_call_ad' found in sys.modules after import of package 'examples.advanced_operations', but prior to execution of 'examples.advanced_operations.add_call_ad'",
157+
category=RuntimeWarning,
158+
)
159+
# This block needs to be indented
160+
with mock.patch("sys.argv", [
161+
"add_call_ad.py",
162+
"-c", mock_args.customer_id,
163+
"-a", mock_args.ad_group_id,
164+
"-n", mock_args.phone_number,
165+
"-p", mock_args.phone_country,
166+
"-v", mock_args.conversion_action_id,
167+
]), mock.patch(
168+
"examples.advanced_operations.add_call_ad.argparse.ArgumentParser"
169+
) as mock_argparse:
170+
# Mock parse_args to return the predefined mock_args
171+
mock_argparse_instance = mock_argparse.return_value
172+
mock_argparse_instance.parse_args.return_value = mock_args
173+
174+
# Import and run the main function from the script's __main__ block
175+
import runpy
176+
with self.assertRaises(SystemExit) as cm:
177+
runpy.run_module("examples.advanced_operations.add_call_ad", run_name="__main__")
178+
179+
self.assertEqual(cm.exception.code, 1)
171180

172181

173182
if __name__ == "__main__":

examples/advanced_operations/tests/test_add_display_upload_ad.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import unittest
1919
from unittest import mock
2020
import runpy
21+
import warnings
2122

2223
from google.ads.googleads.client import GoogleAdsClient
2324
from google.ads.googleads.errors import GoogleAdsException
@@ -102,7 +103,13 @@ def get_service_side_effect(service_name, version=None):
102103
"examples.advanced_operations.add_display_upload_ad.argparse.ArgumentParser"
103104
) as mock_argparse:
104105
mock_argparse.return_value.parse_args.return_value = mock_args
105-
runpy.run_module("examples.advanced_operations.add_display_upload_ad", run_name="__main__")
106+
with warnings.catch_warnings():
107+
warnings.filterwarnings(
108+
"ignore",
109+
message="'.*add_display_upload_ad' found in sys.modules after import of package 'examples.advanced_operations', but prior to execution of 'examples.advanced_operations.add_display_upload_ad'",
110+
category=RuntimeWarning,
111+
)
112+
runpy.run_module("examples.advanced_operations.add_display_upload_ad", run_name="__main__")
106113

107114
mock_load_from_storage.assert_called_once_with(version="v20")
108115
mock_requests_get.assert_called_once_with("https://gaagl.page.link/ib87")
@@ -170,10 +177,16 @@ def test_main_google_ads_exception(self, mock_load_from_storage, mock_requests_g
170177
"examples.advanced_operations.add_display_upload_ad.argparse.ArgumentParser"
171178
) as mock_argparse:
172179
mock_argparse.return_value.parse_args.return_value = mock_args
173-
with self.assertRaises(SystemExit) as cm:
174-
runpy.run_module("examples.advanced_operations.add_display_upload_ad", run_name="__main__")
175-
176-
self.assertEqual(cm.exception.code, 1)
180+
with warnings.catch_warnings():
181+
warnings.filterwarnings(
182+
"ignore",
183+
message="'.*add_display_upload_ad' found in sys.modules after import of package 'examples.advanced_operations', but prior to execution of 'examples.advanced_operations.add_display_upload_ad'",
184+
category=RuntimeWarning,
185+
)
186+
with self.assertRaises(SystemExit) as cm:
187+
runpy.run_module("examples.advanced_operations.add_display_upload_ad", run_name="__main__")
188+
189+
self.assertEqual(cm.exception.code, 1)
177190

178191
mock_load_from_storage.assert_called_once_with(version="v20")
179192
mock_requests_get.assert_called_once_with("https://gaagl.page.link/ib87")

examples/advanced_operations/tests/test_add_dynamic_search_ads.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import unittest
1919
from unittest import mock
2020
import runpy
21+
import warnings
2122

2223
from google.ads.googleads.client import GoogleAdsClient
2324
from google.ads.googleads.errors import GoogleAdsException
@@ -123,7 +124,13 @@ def get_service_side_effect(service_name, version=None):
123124
"examples.advanced_operations.add_dynamic_search_ads.argparse.ArgumentParser"
124125
) as mock_argparse:
125126
mock_argparse.return_value.parse_args.return_value = mock_args
126-
runpy.run_module("examples.advanced_operations.add_dynamic_search_ads", run_name="__main__")
127+
with warnings.catch_warnings():
128+
warnings.filterwarnings(
129+
"ignore",
130+
message="'.*add_dynamic_search_ads' found in sys.modules after import of package 'examples.advanced_operations', but prior to execution of 'examples.advanced_operations.add_dynamic_search_ads'",
131+
category=RuntimeWarning,
132+
)
133+
runpy.run_module("examples.advanced_operations.add_dynamic_search_ads", run_name="__main__")
127134

128135
mock_load_from_storage.assert_called_once_with(version="v20")
129136
mock_campaign_budget_service.mutate_campaign_budgets.assert_called_once()
@@ -180,10 +187,16 @@ def test_main_google_ads_exception(self, mock_load_from_storage):
180187
"examples.advanced_operations.add_dynamic_search_ads.argparse.ArgumentParser"
181188
) as mock_argparse:
182189
mock_argparse.return_value.parse_args.return_value = mock_args
183-
with self.assertRaises(SystemExit) as cm:
184-
runpy.run_module("examples.advanced_operations.add_dynamic_search_ads", run_name="__main__")
185-
186-
self.assertEqual(cm.exception.code, 1)
190+
with warnings.catch_warnings():
191+
warnings.filterwarnings(
192+
"ignore",
193+
message="'.*add_dynamic_search_ads' found in sys.modules after import of package 'examples.advanced_operations', but prior to execution of 'examples.advanced_operations.add_dynamic_search_ads'",
194+
category=RuntimeWarning,
195+
)
196+
with self.assertRaises(SystemExit) as cm:
197+
runpy.run_module("examples.advanced_operations.add_dynamic_search_ads", run_name="__main__")
198+
199+
self.assertEqual(cm.exception.code, 1)
187200

188201
mock_load_from_storage.assert_called_once_with(version="v20")
189202
mock_campaign_budget_service.mutate_campaign_budgets.assert_called_once()

examples/advanced_operations/tests/test_add_performance_max_campaign.py

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import unittest
1919
from unittest import mock
2020
import runpy
21+
import warnings
2122

2223
from google.ads.googleads.client import GoogleAdsClient
2324
from google.ads.googleads.errors import GoogleAdsException
@@ -163,7 +164,13 @@ def test_main_success_no_audience_no_brand_guidelines(self, mock_load_from_stora
163164
"examples.advanced_operations.add_performance_max_campaign.argparse.ArgumentParser"
164165
) as mock_argparse:
165166
mock_argparse.return_value.parse_args.return_value = mock_args
166-
runpy.run_module("examples.advanced_operations.add_performance_max_campaign", run_name="__main__")
167+
with warnings.catch_warnings():
168+
warnings.filterwarnings(
169+
"ignore",
170+
message="'.*add_performance_max_campaign' found in sys.modules after import of package 'examples.advanced_operations', but prior to execution of 'examples.advanced_operations.add_performance_max_campaign'",
171+
category=RuntimeWarning,
172+
)
173+
runpy.run_module("examples.advanced_operations.add_performance_max_campaign", run_name="__main__")
167174

168175
self.assertEqual(mock_googleads_service.mutate.call_count, 3)
169176
mock_load_from_storage.assert_called_once_with(version="v20")
@@ -227,7 +234,13 @@ def test_main_with_audience_and_brand_guidelines(self, mock_load_from_storage, m
227234
"examples.advanced_operations.add_performance_max_campaign.argparse.ArgumentParser"
228235
) as mock_argparse:
229236
mock_argparse.return_value.parse_args.return_value = mock_args
230-
runpy.run_module("examples.advanced_operations.add_performance_max_campaign", run_name="__main__")
237+
with warnings.catch_warnings():
238+
warnings.filterwarnings(
239+
"ignore",
240+
message="'.*add_performance_max_campaign' found in sys.modules after import of package 'examples.advanced_operations', but prior to execution of 'examples.advanced_operations.add_performance_max_campaign'",
241+
category=RuntimeWarning,
242+
)
243+
runpy.run_module("examples.advanced_operations.add_performance_max_campaign", run_name="__main__")
231244

232245
self.assertEqual(mock_googleads_service.mutate.call_count, 3)
233246
main_mutate_call_args = mock_googleads_service.mutate.call_args_list[2]
@@ -279,9 +292,15 @@ def test_main_google_ads_exception_on_text_assets(self, mock_load_from_storage,
279292
with mock.patch("sys.argv", ["add_performance_max_campaign.py", "-c", mock_args.customer_id]), \
280293
mock.patch("examples.advanced_operations.add_performance_max_campaign.argparse.ArgumentParser") as mock_argparse:
281294
mock_argparse.return_value.parse_args.return_value = mock_args
282-
with self.assertRaises(SystemExit) as cm:
283-
runpy.run_module("examples.advanced_operations.add_performance_max_campaign", run_name="__main__")
284-
self.assertEqual(cm.exception.code, 1)
295+
with warnings.catch_warnings():
296+
warnings.filterwarnings(
297+
"ignore",
298+
message="'.*add_performance_max_campaign' found in sys.modules after import of package 'examples.advanced_operations', but prior to execution of 'examples.advanced_operations.add_performance_max_campaign'",
299+
category=RuntimeWarning,
300+
)
301+
with self.assertRaises(SystemExit) as cm:
302+
runpy.run_module("examples.advanced_operations.add_performance_max_campaign", run_name="__main__")
303+
self.assertEqual(cm.exception.code, 1)
285304

286305
mock_googleads_service.mutate.assert_called_once() # Should fail on the first call
287306

examples/advanced_operations/tests/test_add_responsive_search_ad_full.py

Lines changed: 24 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import unittest
1919
from unittest import mock
2020
import runpy
21+
import warnings
2122

2223
from google.ads.googleads.client import GoogleAdsClient
2324
from google.ads.googleads.errors import GoogleAdsException
@@ -119,7 +120,13 @@ def test_main_success_no_customizer(self, mock_load_from_storage):
119120
with mock.patch("sys.argv", ["add_responsive_search_ad_full.py", "-c", mock_args.customer_id]), \
120121
mock.patch("examples.advanced_operations.add_responsive_search_ad_full.argparse.ArgumentParser") as mock_argparse:
121122
mock_argparse.return_value.parse_args.return_value = mock_args
122-
runpy.run_module("examples.advanced_operations.add_responsive_search_ad_full", run_name="__main__")
123+
with warnings.catch_warnings():
124+
warnings.filterwarnings(
125+
"ignore",
126+
message="'.*add_responsive_search_ad_full' found in sys.modules after import of package 'examples.advanced_operations', but prior to execution of 'examples.advanced_operations.add_responsive_search_ad_full'",
127+
category=RuntimeWarning,
128+
)
129+
runpy.run_module("examples.advanced_operations.add_responsive_search_ad_full", run_name="__main__")
123130

124131
mock_load_from_storage.assert_called_once_with(version="v20")
125132
self.mock_services["CustomizerAttributeService"].mutate_customizer_attributes.assert_not_called()
@@ -174,7 +181,13 @@ def test_main_success_with_customizer(self, mock_load_from_storage):
174181
with mock.patch("sys.argv", ["add_responsive_search_ad_full.py", "-c", mock_args.customer_id, "-n", _CUSTOMIZER_NAME]), \
175182
mock.patch("examples.advanced_operations.add_responsive_search_ad_full.argparse.ArgumentParser") as mock_argparse:
176183
mock_argparse.return_value.parse_args.return_value = mock_args
177-
runpy.run_module("examples.advanced_operations.add_responsive_search_ad_full", run_name="__main__")
184+
with warnings.catch_warnings():
185+
warnings.filterwarnings(
186+
"ignore",
187+
message="'.*add_responsive_search_ad_full' found in sys.modules after import of package 'examples.advanced_operations', but prior to execution of 'examples.advanced_operations.add_responsive_search_ad_full'",
188+
category=RuntimeWarning,
189+
)
190+
runpy.run_module("examples.advanced_operations.add_responsive_search_ad_full", run_name="__main__")
178191

179192
self.mock_services["CustomizerAttributeService"].mutate_customizer_attributes.assert_called_once()
180193
customizer_attr_op_create = self.mock_services["CustomizerAttributeService"].mutate_customizer_attributes.call_args[1]['operations'][0].create
@@ -218,9 +231,15 @@ def test_main_google_ads_exception(self, mock_load_from_storage):
218231
with mock.patch("sys.argv", ["add_responsive_search_ad_full.py", "-c", mock_args.customer_id]), \
219232
mock.patch("examples.advanced_operations.add_responsive_search_ad_full.argparse.ArgumentParser") as mock_argparse:
220233
mock_argparse.return_value.parse_args.return_value = mock_args
221-
with self.assertRaises(SystemExit) as cm:
222-
runpy.run_module("examples.advanced_operations.add_responsive_search_ad_full", run_name="__main__")
223-
self.assertEqual(cm.exception.code, 1)
234+
with warnings.catch_warnings():
235+
warnings.filterwarnings(
236+
"ignore",
237+
message="'.*add_responsive_search_ad_full' found in sys.modules after import of package 'examples.advanced_operations', but prior to execution of 'examples.advanced_operations.add_responsive_search_ad_full'",
238+
category=RuntimeWarning,
239+
)
240+
with self.assertRaises(SystemExit) as cm:
241+
runpy.run_module("examples.advanced_operations.add_responsive_search_ad_full", run_name="__main__")
242+
self.assertEqual(cm.exception.code, 1)
224243

225244
self.mock_services["CampaignBudgetService"].mutate_campaign_budgets.assert_called_once()
226245

0 commit comments

Comments
 (0)