@@ -145,15 +145,19 @@ def test_create(client):
145145 )
146146 assert isinstance (prompt_resource , types .Prompt )
147147 assert isinstance (prompt_resource .dataset , types .Dataset )
148+ assert isinstance (prompt_resource .dataset_version , types .DatasetVersion )
149+ assert prompt_resource .version_id == "1"
150+ assert (
151+ prompt_resource .dataset_version .metadata .prompt_api_schema .multimodal_prompt
152+ == prompt_resource .dataset .metadata .prompt_api_schema .multimodal_prompt
153+ )
148154
149155
150156def test_create_e2e (client ):
151157 prompt_resource = client .prompts .create (
152158 prompt = TEST_PROMPT ,
153159 config = TEST_CREATE_PROMPT_CONFIG ,
154160 )
155- assert isinstance (prompt_resource , types .Prompt )
156- assert isinstance (prompt_resource .dataset , types .Dataset )
157161
158162 # Test local prompt resource is the same after calling get()
159163 retrieved_prompt = client .prompts .get (prompt_id = prompt_resource .prompt_id )
@@ -186,28 +190,31 @@ def test_create_e2e(client):
186190 # Test calling create_version on the same prompt dataset and change the prompt
187191 new_prompt = TEST_PROMPT .model_copy (deep = True )
188192 new_prompt .prompt_data .contents [0 ].parts [0 ].text = "Is this Alice?"
189- prompt_resource_2 = client .prompts .create_version (
193+ updated_prompt = client .prompts .update (
190194 prompt_id = prompt_resource .prompt_id ,
191195 prompt = new_prompt ,
192- config = types .CreatePromptVersionConfig (
193- version_display_name = "my_version" ,
196+ config = types .UpdatePromptConfig (
197+ prompt_display_name = "updated_prompt_display_name" ,
198+ version_display_name = "my_version_2" ,
194199 ),
195200 )
196- assert prompt_resource_2 .dataset .name == prompt_resource .dataset .name
197- assert prompt_resource_2 .prompt_data .contents [0 ].parts [0 ].text == "Is this Alice?"
201+ assert updated_prompt .dataset .display_name == "updated_prompt_display_name"
202+ assert updated_prompt .dataset_version .display_name == "my_version_2"
203+ assert updated_prompt .version_id == "2"
204+ assert updated_prompt .prompt_data .contents [0 ].parts [0 ].text == "Is this Alice?"
198205
199- # Update the prompt contents again and verify version history is preserved
200- prompt_v3 = TEST_PROMPT .model_copy (deep = True )
201- prompt_v3 .prompt_data .contents [0 ].parts [0 ].text = "Is this Bob?"
202- prompt_resource_3 = client .prompts .create_version (
206+ # Tests that assemble_contents() works on a prompt without variables.
207+ assert updated_prompt .assemble_contents ()[0 ].role == "user"
208+
209+ # Calling get_version on version "1" should return the original prompt contents
210+ original_prompt = client .prompts .get_version (
203211 prompt_id = prompt_resource .prompt_id ,
204- prompt = prompt_v3 ,
205- config = types .CreatePromptVersionConfig (
206- version_display_name = "my_version_2" ,
207- ),
212+ version_id = "1" ,
213+ )
214+ assert (
215+ original_prompt .prompt_data .contents [0 ].parts [0 ].text
216+ == "Hello, {name}! How are you?"
208217 )
209- assert prompt_resource_3 .dataset .name == prompt_resource .dataset .name
210- assert prompt_resource_3 .prompt_data .contents [0 ].parts [0 ].text == "Is this Bob?"
211218
212219
213220def test_create_version (client ):
@@ -296,6 +303,7 @@ def test_create_with_encryption_spec(client):
296303 config = types .CreatePromptConfig (
297304 prompt_display_name = "my_prompt_with_encryption_spec" ,
298305 encryption_spec = encryption_spec ,
306+ version_display_name = "my_version_with_encryption_spec" ,
299307 )
300308 prompt_resource = client .prompts .create (
301309 prompt = TEST_PROMPT ,
@@ -304,19 +312,19 @@ def test_create_with_encryption_spec(client):
304312 assert isinstance (prompt_resource , types .Prompt )
305313 assert isinstance (prompt_resource .dataset , types .Dataset )
306314
307- # Create a version on a prompt with an encryption spec.
315+ # Update a prompt with an encryption spec.
308316 new_prompt = TEST_PROMPT .model_copy (deep = True )
309317 new_prompt .prompt_data .contents [0 ].parts [0 ].text = "Is this Alice?"
310- prompt_version_resource = client .prompts .create_version (
318+ updated_prompt_resource = client .prompts .update (
311319 prompt_id = prompt_resource .prompt_id ,
312320 prompt = new_prompt ,
313- config = types .CreatePromptVersionConfig (
321+ config = types .UpdatePromptConfig (
314322 version_display_name = "my_version_existing_dataset" ,
315323 ),
316324 )
317- assert isinstance (prompt_version_resource , types .Prompt )
318- assert isinstance (prompt_version_resource .dataset , types .Dataset )
319- assert isinstance (prompt_version_resource .dataset_version , types .DatasetVersion )
325+ assert isinstance (updated_prompt_resource , types .Prompt )
326+ assert isinstance (updated_prompt_resource .dataset , types .Dataset )
327+ assert isinstance (updated_prompt_resource .dataset_version , types .DatasetVersion )
320328
321329
322330pytestmark = pytest_helper .setup (
@@ -329,35 +337,29 @@ def test_create_with_encryption_spec(client):
329337
330338
331339@pytest .mark .asyncio
332- async def test_create_async (client ):
340+ async def test_create_async_e2e (client ):
333341 prompt_resource = await client .aio .prompts .create (
334342 prompt = TEST_PROMPT .model_dump (),
335343 config = TEST_CREATE_PROMPT_CONFIG .model_dump (),
336344 )
337345 assert isinstance (prompt_resource , types .Prompt )
338346 assert isinstance (prompt_resource .dataset , types .Dataset )
339-
340-
341- @pytest .mark .asyncio
342- async def test_create_version_async (client ):
343- prompt_resource = await client .aio .prompts .create (
344- prompt = TEST_PROMPT .model_dump (),
345- config = TEST_CREATE_PROMPT_CONFIG .model_dump (),
347+ assert isinstance (prompt_resource .dataset_version , types .DatasetVersion )
348+ assert prompt_resource .version_id == "1"
349+ assert (
350+ prompt_resource .dataset .metadata .prompt_api_schema .multimodal_prompt .prompt_message
351+ == prompt_resource .dataset_version .metadata .prompt_api_schema .multimodal_prompt .prompt_message
346352 )
353+
347354 new_prompt = TEST_PROMPT .model_copy (deep = True )
348355 new_prompt .prompt_data .contents [0 ].parts [0 ].text = "Is this Alice?"
349- prompt_version_resource = await client .aio .prompts .create_version (
356+ updated_prompt_resource = await client .aio .prompts .update (
350357 prompt_id = prompt_resource .prompt_id ,
351358 prompt = new_prompt ,
352- config = types .CreatePromptVersionConfig (
359+ config = types .UpdatePromptConfig (
353360 version_display_name = "my_version_existing_dataset" ,
354361 ),
355362 )
356- assert isinstance (prompt_version_resource , types .Prompt )
357- assert isinstance (prompt_version_resource .dataset , types .Dataset )
358- assert isinstance (prompt_version_resource .dataset_version , types .DatasetVersion )
359- assert prompt_version_resource .dataset .name .endswith (prompt_resource .prompt_id )
360- assert (
361- prompt_version_resource .prompt_data .contents [0 ].parts [0 ].text
362- == "Is this Alice?"
363- )
363+ assert isinstance (updated_prompt_resource , types .Prompt )
364+ assert isinstance (updated_prompt_resource .dataset , types .Dataset )
365+ assert isinstance (updated_prompt_resource .dataset_version , types .DatasetVersion )
0 commit comments