From 941d381330e322bc8185e8485b3f79a56e43541c Mon Sep 17 00:00:00 2001 From: Kyle McCullen Date: Fri, 26 Jun 2026 10:23:27 -0400 Subject: [PATCH] child platforms --- branta/__pycache__/__init__.cpython-313.pyc | Bin 1102 -> 0 bytes branta/__pycache__/enums.cpython-313.pyc | Bin 1278 -> 0 bytes branta/__pycache__/exceptions.cpython-313.pyc | Bin 577 -> 0 bytes branta/__pycache__/extensions.cpython-313.pyc | Bin 4566 -> 0 bytes branta/__pycache__/models.cpython-313.pyc | Bin 3038 -> 0 bytes branta/__pycache__/options.cpython-313.pyc | Bin 845 -> 0 bytes branta/models.py | 1 + .../v2/__pycache__/__init__.cpython-313.pyc | Bin 776 -> 0 bytes branta/v2/__pycache__/builder.cpython-313.pyc | Bin 3124 -> 0 bytes branta/v2/__pycache__/client.cpython-313.pyc | Bin 9428 -> 0 bytes .../v2/__pycache__/encryption.cpython-313.pyc | Bin 3751 -> 0 bytes branta/v2/__pycache__/parser.cpython-313.pyc | Bin 8731 -> 0 bytes .../secret_generator.cpython-313.pyc | Bin 783 -> 0 bytes .../__pycache__/serialization.cpython-313.pyc | Bin 5161 -> 0 bytes branta/v2/__pycache__/service.cpython-313.pyc | Bin 15518 -> 0 bytes branta/v2/builder.py | 11 ++++- branta/v2/serialization.py | 9 ++++ tests/__pycache__/__init__.cpython-313.pyc | Bin 152 -> 0 bytes .../test_builder.cpython-313-pytest-9.1.1.pyc | Bin 23218 -> 0 bytes ...st_encryption.cpython-313-pytest-9.1.1.pyc | Bin 8470 -> 0 bytes ...st_extensions.cpython-313-pytest-9.1.1.pyc | Bin 30955 -> 0 bytes ...est_qr_parser.cpython-313-pytest-9.1.1.pyc | Bin 58761 -> 0 bytes .../test_service.cpython-313-pytest-9.1.1.pyc | Bin 94671 -> 0 bytes tests/test_builder.py | 43 ++++++++++++++++++ 24 files changed, 63 insertions(+), 1 deletion(-) delete mode 100644 branta/__pycache__/__init__.cpython-313.pyc delete mode 100644 branta/__pycache__/enums.cpython-313.pyc delete mode 100644 branta/__pycache__/exceptions.cpython-313.pyc delete mode 100644 branta/__pycache__/extensions.cpython-313.pyc delete mode 100644 branta/__pycache__/models.cpython-313.pyc delete mode 100644 branta/__pycache__/options.cpython-313.pyc delete mode 100644 branta/v2/__pycache__/__init__.cpython-313.pyc delete mode 100644 branta/v2/__pycache__/builder.cpython-313.pyc delete mode 100644 branta/v2/__pycache__/client.cpython-313.pyc delete mode 100644 branta/v2/__pycache__/encryption.cpython-313.pyc delete mode 100644 branta/v2/__pycache__/parser.cpython-313.pyc delete mode 100644 branta/v2/__pycache__/secret_generator.cpython-313.pyc delete mode 100644 branta/v2/__pycache__/serialization.cpython-313.pyc delete mode 100644 branta/v2/__pycache__/service.cpython-313.pyc delete mode 100644 tests/__pycache__/__init__.cpython-313.pyc delete mode 100644 tests/__pycache__/test_builder.cpython-313-pytest-9.1.1.pyc delete mode 100644 tests/__pycache__/test_encryption.cpython-313-pytest-9.1.1.pyc delete mode 100644 tests/__pycache__/test_extensions.cpython-313-pytest-9.1.1.pyc delete mode 100644 tests/__pycache__/test_qr_parser.cpython-313-pytest-9.1.1.pyc delete mode 100644 tests/__pycache__/test_service.cpython-313-pytest-9.1.1.pyc diff --git a/branta/__pycache__/__init__.cpython-313.pyc b/branta/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index 372deb808f6d4b7a76cedc6ca324657db2781e9a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1102 zcmZ9Ky>1gh5Xbk<-|@HOIF3mm5~8?*SfNURA|)ggYXMFS4HT=hy@?N>?@qJlh)W0W zK*tO4I21H1p%fH|4oH!foxL+jILSZH?Cj3`XLc{kQ>1d0K!1U4kWAgd#0LiI$;ED^Q_T zsL~qLXdUXb0S$d7-CL$jXwnr}p)F|9Ram8MXzN&}w?;eA(RQ|Xhpxjq-GGfv(j|l3 zkpXv4^H$*}O0`mQc^_;qv&&kh~mdl>~>7W?3w*`w&0KjxMx zTk)a39nH8G9=;p#0JqB8(Q)4f!T+sTMOi%MA+rOAO?f0s=nPdAHdke8=uK=fVdqm8 zVx6j9nb{*I_y~9ypAO>UGKWz-m~{lRVJZvif9Sj6_O`4mQ#h`Y!-80rY=l1Ze3;p; zbI!-QkgTdTm4TgreTv$xjI8aA$4Mv0T+Cfn^hWzKm&9ZxF+{Q}-*@fsMCG@P#T1{o zj>`E$4@0OqmG`(f^hOZH<7wV5V_Nx_%q&}MlSE}>)yM^Jn%&~&hs#c!in!CUY9Y)b3(?pf=K2c zD}i&D@4^F>$WTAAqwp(b7{&#mUkJS*Pp{09VP261eru~kj5o$t^7wR(}Zpwt#^6zN##K^WF#nrz+drf()fJOzZF zJyh`8WB;Qt&{I#j6=Lswvmb(xF6^84@q6<=cgLktp5XK2`>QW22||8rA%4t=8Gl0N znovTG_hjDyW05={j|ff76Pi3poEV#_5DCdZpF(~5o<0@mP1I-Z>C>%jH8;}ERYRqA zy@BQ<+hYvv1M68+AYUx)ml9pnqWI_?KJSIb-}+_h*1-*6>Y^UT)$zvZC}W(7ptqQ zKgnS=tFnxFc84>j@{D!-X3y1pk+H8m+l?$`#y&eBr0aOx^U<84VKORz1nAO`j_;{l zJ-%L57{hd>(_prg;GFg(7mPs$3mW4~)TY(;JKQ?!yW9#(w?6Q$FRZYp=iR<+`(7kj z9NQ~u-9DtzHz2w-Vg|`KGMw5Nyc^C~gZ<(3%H)QPeo>9L_6ZTgYQJagL7S_>mGg!s&pL0j#0U~7qj_oIE(ob4FVrUaVIr@ z9!myIv{5`mg3Yfy861Wa2*)rt*d5L-4-SUY3xmDk%tPF*x#i1)a5UQa5Z5H7*AkK_ zsU+@4xSYXkgBbURuCgz~kLxwm&_n+p#5$5cNy9LHk;<)^G@jlp-N;*l%xy7Y%v~*A Vp@htBK5IO_YTRu6CCCIx`~wgbO&9t++e?F`|M{Iolc9W_x5sncdh(8lKM3&P#h{SC);F?cw~oobV!cO zGAF2x8Y*i3i5e5D*BIA*(9?<(8w$+HkO=A#VR%%So*}G>*|YMkbHO6X`Ya21BrhJv zJdu7Jec;~(aTkr;28dY50rD0=7~jkS#BG3w84Ie+8o;eDQW^LWk7AYH1V|;5{ur2) z!XM2fPXPpOSD>o=*qO#5ckZ)*JEa6?z>_$2Mq1B)lF4ZtRm|bFuJj-~F+xmg|a@8kPe(NV~Psb*sqqbd0+_GjINMD%I+GU8~Em nM{b{#*E|#JisCNmt}>q{rF3af+I+oQ66Kb*GSAr;Vm;*>o`Zkr diff --git a/branta/__pycache__/extensions.cpython-313.pyc b/branta/__pycache__/extensions.cpython-313.pyc deleted file mode 100644 index 86729da68bb257b7fb67283894c8332e59257d0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4566 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 B%_aZ< diff --git a/branta/__pycache__/options.cpython-313.pyc b/branta/__pycache__/options.cpython-313.pyc deleted file mode 100644 index 14948b82dab95cd354dc8f9ece2a454f564cdffa..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 845 zcmYjQ&1(}u6rb7ed^HEDiXYGfqHMwDR76k@^&o7p6&JmjFiet3vUan(zL_m-PrZ5V z!Tu3m{9A;A$U;F7k=`OXcy(qsDIJ(Mzu&yKkKcQ5cG+lDkz8LtKl?y2LcbJQFS7)A z`A&i}6SBj3D(d}~)L^X--g zg38o(olC`BoY!a+#e#|;j<}?iF%@(aQm%+|kf?hax>|l?4`?K)&)|r`9_8#Ugn8{X z1V?m~y^6X5nvyI=3~%1vV^|j>kp;JH^B5w$*dK#d|NVS#q5Gr z3RVSYYPhwvju&CTB2nt&mlc@{ENOCQD5a4U!u{jTwfgthR1R`GDK#HAuKZlUAa9P@ zgr=b&GzrKd%ktW6PDg~Z5is!uxs}`@B%*UhNM0pm9*@&d;W{B7QyQ*3O+qFCa1jO( zi(=`P7uPyW2-KC!wAZrCR*1UH0L>LD{-B=<^f@lir;pX*H*A9!)IWL9+ z_BvltR+;{miglirZF~;*B$fXG;@i?Jbd2!@YX3&93v~Anda|&PR{N(J_`w26v(zR1 It7wtyKPn>QCIA2c diff --git a/branta/models.py b/branta/models.py index 7f5de57..83f42dd 100644 --- a/branta/models.py +++ b/branta/models.py @@ -35,6 +35,7 @@ class Payment: platform_logo_url: Optional[str] = None platform_logo_light_url: Optional[str] = None parent_platform: Optional[Platform] = None + child_platform: Optional[Platform] = None btc_pay_server_plugin_version: Optional[str] = None is_metadata_decrypted: Optional[bool] = None diff --git a/branta/v2/__pycache__/__init__.cpython-313.pyc b/branta/v2/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index e51da420a2fe1f5bcf201e58b5abb4b609a0e0d1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 776 zcmYjO&2G~`5Z?7q>?C%Yw2>+}^=edNse%g>Bm$_?8lk3sfR&pp?Sf-lV<(b(<01MG zJOgjCQpAB1H$;TEvb!cYEBW)xr8_y214IevO6-@XIseMJ&I9` zBSbLZ6BQegK};}pY(^Hb!Pc=Ab%+BFalzHO9d$_$dOGezed2*feDKKt2IK$^H19-1 zGJ??w3Q_FNFdW`=gWeA{Jiuabnbb>`Rnrwu7YrohO(DsuP(GkC+wif4(ckS#|SE53-?99VV1G6qSNLtu&VqOGDIAYam? z;Nozft#Zu`i$+yjHP|stg&g8HI(LHl;LDA`QeZ0RC~y?G3Ty>^1)hSg0`)rYgCjAz z)+`QFNDQVKyNm|=UN!-$yq7+)FThUg4?2;m1ES09{bcrvilk?f^ zohzkMC7zJ`fXV}T;6tiZkeWQve*s?Lu~s9+T3Yc?fz&rdDk|{;GkbTA;|2*3tnAs@ znYr1So!@?JMk3t=+V`Ji7Lx%&9^t@iqQeNAmw{O!3Q>d{$qH16Bk#-ksE_x4>WAK+ z6SESPxK7LkvOyZ;yp)r(U9>CPO}pb{FG&(55F<+Pn9uP}Lkqr?{1^u*frT{Ftk{}e zs+iUkjO7bePqEclMLT-Hr{&T;HeztahuSAba|mkAXV z0&xovb6D}k$f8I^C8G2wBJzs@m6WI=ad|-L#aO{2sO(aLoRgL36q$2fN}tljxo%~* z(#^S$5~AS+f2yDLxWSyMm5icJABSN2Il&2rQ%oO%6E>5;tdN|U)%2B0Sx+x58+!T-)l6GU=k;pEO3(7ak?OL2rDD3H z^wpQrvrcRi)n)Lhmdui^s%+2pz$ZLK80N4rix0?yy$3$;s*4{*HepDn=G-;L0g>R( z)4B>wds+oS5ftAEpXo37W&vpzN4C-{ki3gEbm6r;Sar61SEq!Kg8!JiP;pWqqa@{@ zdIPW_UDb@5&ZLs1URz2@6umLg2H?;Lvf<(uoGcd5s#V=ArbHS=Wl$>?scuVS4K@#qtcQo1a`@Om!w=#kU!A*?y`BB?{QdY*E@~@F zYdOFv^1Lk11G7Rd_U=@c_AM|r?v`Y(W?T4vY z*fUqlTGhg|w+@Lg9s-`84R)ZhU73LItQ-(1(AhV?%Y2jBIQuUAzL>ss>9b3#;@6S2 z$j11o#`vlA;nVk2tsZU;B|cUf^1cU&gLh)LW2@)yCr;Ewr?mUqO8Z}8({I~`hsjBd zxP8+F5p!U`20HR|vZGv;h` zha{e{I*iWTln%Y-q%_u+QtKWEJLLJciUIRi+sZu))&%DW>_Pwdp?m2_{N`r6J7VL~ zG}_`p0tkxs-MoI|`aOAw-x~BJNa11(P~EOklZjImQ+Ljs0L5r%90}fd*Yn;UvHK1wnX7l8;E} Z2NHTn27e;sKaz>3frG;EuLKBp@h8Jgf!qK9 diff --git a/branta/v2/__pycache__/client.cpython-313.pyc b/branta/v2/__pycache__/client.cpython-313.pyc deleted file mode 100644 index 1881b8888aa8a3e688e456fce59134cdcafa4220..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9428 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 at=9YE*Xi(I2_*NwMFl!W|3)yi2mKGzsrSMF diff --git a/branta/v2/__pycache__/parser.cpython-313.pyc b/branta/v2/__pycache__/parser.cpython-313.pyc deleted file mode 100644 index 0f9bed76036d627aee3f73d9a45616c21aba8082..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8731 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 BYXJZN diff --git a/branta/v2/__pycache__/secret_generator.cpython-313.pyc b/branta/v2/__pycache__/secret_generator.cpython-313.pyc deleted file mode 100644 index 127b71886b4d35aac3adf9745d0f736fc4b75a41..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 783 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 S+MXUcBsBkPEGz`MvHt**jmd`q diff --git a/branta/v2/__pycache__/service.cpython-313.pyc b/branta/v2/__pycache__/service.cpython-313.pyc deleted file mode 100644 index 4f5fc2f73fd96d84258ecf42d0008954a6206f66..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15518 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 "PaymentBuilder": self._payment.platform_logo_url = platform_logo_url return self + def set_child_platform( + self, + name: str, + logo_url: Optional[str] = None, + logo_light_url: Optional[str] = None, + ) -> "PaymentBuilder": + self._payment.child_platform = Platform(name=name, logo_url=logo_url, logo_light_url=logo_light_url) + return self + def build(self) -> Payment: return self._payment diff --git a/branta/v2/serialization.py b/branta/v2/serialization.py index c13553d..25d04bc 100644 --- a/branta/v2/serialization.py +++ b/branta/v2/serialization.py @@ -60,6 +60,15 @@ def payment_to_api(payment: Payment) -> Dict[str, Any]: result["platform_logo_url"] = payment.platform_logo_url if payment.platform_logo_light_url is not None: result["platform_logo_light_url"] = payment.platform_logo_light_url + if payment.child_platform is not None: + cp: Dict[str, Any] = {} + if payment.child_platform.name is not None: + cp["name"] = payment.child_platform.name + if payment.child_platform.logo_url is not None: + cp["logo_url"] = payment.child_platform.logo_url + if payment.child_platform.logo_light_url is not None: + cp["logo_light_url"] = payment.child_platform.logo_light_url + result["child_platform"] = cp if payment.btc_pay_server_plugin_version is not None: result["btc_pay_server_plugin_version"] = payment.btc_pay_server_plugin_version return result diff --git a/tests/__pycache__/__init__.cpython-313.pyc b/tests/__pycache__/__init__.cpython-313.pyc deleted file mode 100644 index 9f2f4355ecd230e86f806e1e83ea1cfd52e3946d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 152 zcmey&%ge<81b$O(vq1D?5CH>>P{wB#AY&>+I)f&o-%5reCLr%KNa~ikenx(7s(yB5 zPO83BQDR<6qJB_nL4L7*5}2b~P+5|ZpQm4vT3k}BA0MBYmst`YuUAlci^C>2KczG$ Y)vkyYXb#ApVi4maGb1Bo5i^hl0K}Xm82|tP diff --git a/tests/__pycache__/test_builder.cpython-313-pytest-9.1.1.pyc b/tests/__pycache__/test_builder.cpython-313-pytest-9.1.1.pyc deleted file mode 100644 index 1a86fbd1c640c4486a9932375b84d8832ad8079f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23218 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 diff --git a/tests/__pycache__/test_encryption.cpython-313-pytest-9.1.1.pyc b/tests/__pycache__/test_encryption.cpython-313-pytest-9.1.1.pyc deleted file mode 100644 index 48c5ced11b310d0b04139ab10471ada20b4aa439..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8470 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 MN!q?ifbg#W0XlS7<^TWy diff --git a/tests/__pycache__/test_extensions.cpython-313-pytest-9.1.1.pyc b/tests/__pycache__/test_extensions.cpython-313-pytest-9.1.1.pyc deleted file mode 100644 index 85c237282316904c8d1085956500ddd826a95a9e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 30955 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 diff --git a/tests/__pycache__/test_qr_parser.cpython-313-pytest-9.1.1.pyc b/tests/__pycache__/test_qr_parser.cpython-313-pytest-9.1.1.pyc deleted file mode 100644 index a862a1b49f3e08f2f890dceb20dd8e28daa99068..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 58761 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 diff --git a/tests/test_builder.py b/tests/test_builder.py index 2181431..8803434 100644 --- a/tests/test_builder.py +++ b/tests/test_builder.py @@ -104,6 +104,49 @@ def test_add_destination_without_type_type_is_none(self): payment = PaymentBuilder().add_destination("bc1qtest").build() assert payment.destinations[0].type is None + def test_set_child_platform_sets_name(self): + payment = PaymentBuilder().add_destination("bc1qtest").set_child_platform("Acme").build() + assert payment.child_platform.name == "Acme" + + def test_set_child_platform_optional_urls_default_none(self): + payment = PaymentBuilder().add_destination("bc1qtest").set_child_platform("Acme").build() + assert payment.child_platform.logo_url is None + assert payment.child_platform.logo_light_url is None + + def test_set_child_platform_with_urls(self): + payment = ( + PaymentBuilder() + .add_destination("bc1qtest") + .set_child_platform("Acme", logo_url="https://example.com/logo.png", logo_light_url="https://example.com/logo-light.png") + .build() + ) + assert payment.child_platform.logo_url == "https://example.com/logo.png" + assert payment.child_platform.logo_light_url == "https://example.com/logo-light.png" + + def test_set_child_platform_returns_builder(self): + builder = PaymentBuilder() + result = builder.set_child_platform("Acme") + assert result is builder + + def test_child_platform_serializes_to_api(self): + from branta.v2.serialization import payment_to_api + payment = ( + PaymentBuilder() + .add_destination("bc1qtest") + .set_child_platform("Acme", logo_url="https://example.com/logo.png") + .build() + ) + api = payment_to_api(payment) + assert api["child_platform"]["name"] == "Acme" + assert api["child_platform"]["logo_url"] == "https://example.com/logo.png" + assert "logo_light_url" not in api["child_platform"] + + def test_no_child_platform_omitted_from_api(self): + from branta.v2.serialization import payment_to_api + payment = PaymentBuilder().add_destination("bc1qtest").build() + api = payment_to_api(payment) + assert "child_platform" not in api + class TestSerializationDestinationType: @pytest.mark.parametrize("dest_type,expected", [