René's URL Explorer Experiment


Title: Add e2e relationship tests for pre-GA validation by saurabhrb · Pull Request #152 · microsoft/PowerPlatform-DataverseClient-Python · GitHub

Open Graph Title: Add e2e relationship tests for pre-GA validation by saurabhrb · Pull Request #152 · microsoft/PowerPlatform-DataverseClient-Python

X Title: Add e2e relationship tests for pre-GA validation by saurabhrb · Pull Request #152 · microsoft/PowerPlatform-DataverseClient-Python

Description: Summary Add end-to-end relationship tests that validate the full relationship API lifecycle against a live Dataverse environment. This is the primary pre-GA validation for Tim's relationship PRs (#88, #105, #114). Changes New: tests/e2e/test_relationships_e2e.py 11 curated e2e tests covering: Test Class Tests Coverage TestOneToManyCore 1 Full 1:N lifecycle: create, get, delete, field assertions TestLookupField 1 Convenience create_lookup_field to system table TestManyToMany 2 N:N lifecycle + nonexistent returns None TestDataThroughRelationships 4 @odata.bind, $expand, $filter on lookup, update binding TestCascadeBehaviors 2 Restrict blocks delete; Cascade deletes children TestTypeDetection 1 get_relationship distinguishes 1:N vs N:N Updated: examples/basic/functional_testing.py Added relationship testing section covering 1:N core API, convenience API, N:N, get, and delete Added relationship imports and retry helpers Updated: pyproject.toml Added [tool.pytest.ini_options] with testpaths = ["tests/unit"] Default pytest runs only unit tests; e2e tests require explicit invocation How to run e2e tests # Set your Dataverse org URL export DATAVERSE_URL=https://yourorg.crm.dynamics.com # Run relationship e2e tests pytest tests/e2e/ -v -s The tests authenticate via InteractiveBrowserCredential and create/delete temporary tables (prefixed test_E2E*). E2E Test Results (from .scratch/ comprehensive suite) Ran 30 tests against https://aurorabapenv71aff.crm10.dynamics.com: 25/30 passed on first run 5 failures were test bugs (not SDK bugs), all fixed: Metadata propagation timing (increased retries) Navigation property name casing ($expand needs server-assigned nav prop) IsValidForAdvancedFind requires BooleanManagedProperty complex type Finding: SDK inconsistency to address before GA create_one_to_many_relationship() returns lookup_schema_name as the user-provided SchemaName, but $expand requires the server-assigned ReferencingEntityNavigationPropertyName (which may differ in casing). The e2e tests work around this by calling get_relationship() after create to get the correct nav prop name. This should be harmonized before GA. Checklist 398 unit tests pass 11 e2e tests collected by pytest Default pytest excludes e2e (runs unit only) Code formatted with black Branch rebased on origin/main

Open Graph Description: Summary Add end-to-end relationship tests that validate the full relationship API lifecycle against a live Dataverse environment. This is the primary pre-GA validation for Tim's relationship PR...

X Description: Summary Add end-to-end relationship tests that validate the full relationship API lifecycle against a live Dataverse environment. This is the primary pre-GA validation for Tim's relationshi...

Opengraph URL: https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:39e9ade4-a43f-aef7-efc2-a17f4fda4626
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idBE60:2DB422:F1401A:14B7003:6A4DD945
html-safe-noncee7f68535b5d24792b558cf82fac90e33ef87cb46f62ddff08a504f1784b86c10
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCRTYwOjJEQjQyMjpGMTQwMUE6MTRCNzAwMzo2QTRERDk0NSIsInZpc2l0b3JfaWQiOiIxMzY3ODk2MDA5ODA4NDAyNzU3IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmac7da01c4565188a3658565993cd266def2857d0cb020446ee1c4eddaccc1b7ba7
hovercard-subject-tagpull_request:3412855496
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files
twitter:imagehttps://avatars.githubusercontent.com/u/32964911?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/32964911?s=400&v=4
og:image:altSummary Add end-to-end relationship tests that validate the full relationship API lifecycle against a live Dataverse environment. This is the primary pre-GA validation for Tim's relationship PR...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None06b8a6144231bf3a234f1c2e9993861e07ce98a905912b114aa386c2d7e84b33
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/microsoft/PowerPlatform-DataverseClient-Python git https://github.com/microsoft/PowerPlatform-DataverseClient-Python.git
octolytics-dimension-user_id6154722
octolytics-dimension-user_loginmicrosoft
octolytics-dimension-repository_id1042273116
octolytics-dimension-repository_nwomicrosoft/PowerPlatform-DataverseClient-Python
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id1042273116
octolytics-dimension-repository_network_root_nwomicrosoft/PowerPlatform-DataverseClient-Python
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release1d344bdb7547fe6bca17a59bb2b8aac3dc9532a0
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FPowerPlatform-DataverseClient-Python%2Fpull%2F152%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fmicrosoft%2FPowerPlatform-DataverseClient-Python%2Fpull%2F152%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=microsoft%2FPowerPlatform-DataverseClient-Python
Reloadhttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files
Reloadhttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files
Reloadhttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files
Please reload this pagehttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files
microsoft https://github.com/microsoft
PowerPlatform-DataverseClient-Pythonhttps://github.com/microsoft/PowerPlatform-DataverseClient-Python
Notifications https://github.com/login?return_to=%2Fmicrosoft%2FPowerPlatform-DataverseClient-Python
Fork 22 https://github.com/login?return_to=%2Fmicrosoft%2FPowerPlatform-DataverseClient-Python
Star 56 https://github.com/login?return_to=%2Fmicrosoft%2FPowerPlatform-DataverseClient-Python
Code https://github.com/microsoft/PowerPlatform-DataverseClient-Python
Issues 6 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/issues
Pull requests 14 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pulls
Actions https://github.com/microsoft/PowerPlatform-DataverseClient-Python/actions
Projects https://github.com/microsoft/PowerPlatform-DataverseClient-Python/projects
Models https://github.com/microsoft/PowerPlatform-DataverseClient-Python/models
Security and quality 0 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/security
Insights https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pulse
Code https://github.com/microsoft/PowerPlatform-DataverseClient-Python
Issues https://github.com/microsoft/PowerPlatform-DataverseClient-Python/issues
Pull requests https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pulls
Actions https://github.com/microsoft/PowerPlatform-DataverseClient-Python/actions
Projects https://github.com/microsoft/PowerPlatform-DataverseClient-Python/projects
Models https://github.com/microsoft/PowerPlatform-DataverseClient-Python/models
Security and quality https://github.com/microsoft/PowerPlatform-DataverseClient-Python/security
Insights https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fmicrosoft%2FPowerPlatform-DataverseClient-Python%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fmicrosoft%2FPowerPlatform-DataverseClient-Python%2Fissues%2Fnew%2Fchoose
saurabhrbhttps://github.com/saurabhrb
mainhttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/tree/main
users/saurabhrb/e2e-relationship-testshttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/tree/users/saurabhrb/e2e-relationship-tests
Conversation 20 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152
Commits 6 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/commits
Checks 9 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/checks
Files changed https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files
Please reload this pagehttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files
Add e2e relationship tests for pre-GA validation https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files#top
Show all changes 6 commits https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files
08d55d0 Add e2e relationship tests and integrate into functional testing Mar 18, 2026 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/commits/08d55d0591ffbe942f51b4732ec00813d09b1d24
cba7f8b Fix e2e tests: switch to new_ prefix, address PR review comments Mar 18, 2026 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/commits/cba7f8b6a33256b291841d7d420bd946b2c54597
8f79ebe Add PR comment handling instructions to copilot-instructions.md Mar 18, 2026 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/commits/8f79ebef2848520dd7616d40934d3485078e6124
6d6b7a8 Revert "Add PR comment handling instructions to copilot-instructions.md" Mar 18, 2026 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/commits/6d6b7a88c51afd50491873d83918225724b711a4
0e7aa93 Address PR review: use server_nav_prop consistently, capture last_exc… Mar 18, 2026 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/commits/0e7aa931d5e49ea4244a63fd561c1b79d5748e52
8c1163e Merge branch 'main' into users/saurabhrb/e2e-relationship-tests saurabhrb Mar 18, 2026 https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/commits/8c1163e624564acf8c47342bb051b28562328e79
Clear filters https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files
Please reload this pagehttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files
Please reload this pagehttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files
functional_testing.py https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files#diff-89f58c9d79d8ec7c5d41c06b5ea9cfdba4fef169dfc193b6a91c75b5cb32a681
pyproject.toml https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
__init__.py https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files#diff-00bcc726b70a1867e64cde4077846cce3e66579ef1014acd8d215c773eec3833
test_relationships_e2e.py https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files#diff-29176bd22365207c43f4f540769437367a9fa6bc4dc190b31e7154980dee0d57
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/main/CODEOWNERS#L6
examples/basic/functional_testing.pyhttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files#diff-89f58c9d79d8ec7c5d41c06b5ea9cfdba4fef169dfc193b6a91c75b5cb32a681
View file https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/8c1163e624564acf8c47342bb051b28562328e79/examples/basic/functional_testing.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/{{ revealButtonHref }}
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files#diff-89f58c9d79d8ec7c5d41c06b5ea9cfdba4fef169dfc193b6a91c75b5cb32a681
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files#diff-89f58c9d79d8ec7c5d41c06b5ea9cfdba4fef169dfc193b6a91c75b5cb32a681
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files#diff-89f58c9d79d8ec7c5d41c06b5ea9cfdba4fef169dfc193b6a91c75b5cb32a681
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files#diff-89f58c9d79d8ec7c5d41c06b5ea9cfdba4fef169dfc193b6a91c75b5cb32a681
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files#diff-89f58c9d79d8ec7c5d41c06b5ea9cfdba4fef169dfc193b6a91c75b5cb32a681
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files#diff-89f58c9d79d8ec7c5d41c06b5ea9cfdba4fef169dfc193b6a91c75b5cb32a681
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files#diff-89f58c9d79d8ec7c5d41c06b5ea9cfdba4fef169dfc193b6a91c75b5cb32a681
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/main/CODEOWNERS#L6
pyproject.tomlhttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
View file https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/8c1163e624564acf8c47342bb051b28562328e79/pyproject.toml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/{{ revealButtonHref }}
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files#diff-50c86b7ed8ac2cf95bd48334961bf0530cdc77b5a56f852c5c61b89d735fd711
Please reload this pagehttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/main/CODEOWNERS#L6
tests/e2e/__init__.pyhttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files#diff-00bcc726b70a1867e64cde4077846cce3e66579ef1014acd8d215c773eec3833
View file https://github.com/microsoft/PowerPlatform-DataverseClient-Python/blob/8c1163e624564acf8c47342bb051b28562328e79/tests/e2e/__init__.py
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/{{ revealButtonHref }}
Please reload this pagehttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files
Please reload this pagehttps://github.com/microsoft/PowerPlatform-DataverseClient-Python/pull/152/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.