From c987da1224cb0c668946f23c23628171383401ce Mon Sep 17 00:00:00 2001 From: shekhar-cis Date: Thu, 6 Jan 2022 17:32:07 +0530 Subject: [PATCH] Kivy Mock added --- src/tests/mock/__init__.py | 0 src/tests/mock/bitmessagemock.py | 38 + src/tests/mock/images/kivy/3.zip | Bin 0 -> 3043 bytes .../mock/images/kivy/account_multiple.png | Bin 0 -> 9798 bytes src/tests/mock/images/kivy/addressbook.png | Bin 0 -> 673 bytes src/tests/mock/images/kivy/addressbookadd.png | Bin 0 -> 7765 bytes src/tests/mock/images/kivy/avatar.png | Bin 0 -> 27865 bytes src/tests/mock/images/kivy/back-button.png | Bin 0 -> 52318 bytes src/tests/mock/images/kivy/bitmessage.icns | Bin 0 -> 32984 bytes src/tests/mock/images/kivy/black_cross.png | Bin 0 -> 5201 bytes src/tests/mock/images/kivy/blacklist.png | Bin 0 -> 752 bytes .../mock/images/kivy/blue-plus-icon-12.png | Bin 0 -> 42162 bytes src/tests/mock/images/kivy/can-icon-16px.png | Bin 0 -> 1007 bytes .../mock/images/kivy/can-icon-24px-green.png | Bin 0 -> 1898 bytes .../mock/images/kivy/can-icon-24px-red.png | Bin 0 -> 1893 bytes .../mock/images/kivy/can-icon-24px-yellow.png | Bin 0 -> 1890 bytes src/tests/mock/images/kivy/can-icon-24px.png | Bin 0 -> 1852 bytes src/tests/mock/images/kivy/can-icon.ico | Bin 0 -> 99678 bytes src/tests/mock/images/kivy/copy_text.png | Bin 0 -> 2701 bytes src/tests/mock/images/kivy/down-arrow.png | Bin 0 -> 2384 bytes src/tests/mock/images/kivy/drawer_logo1.png | Bin 0 -> 2041 bytes src/tests/mock/images/kivy/greenicon.png | Bin 0 -> 820 bytes src/tests/mock/images/kivy/identities.png | Bin 0 -> 870 bytes src/tests/mock/images/kivy/inbox.png | Bin 0 -> 687 bytes src/tests/mock/images/kivy/kivymd_logo.png | Bin 0 -> 42074 bytes src/tests/mock/images/kivy/left_arrow.png | Bin 0 -> 2444 bytes src/tests/mock/images/kivy/loader.gif | Bin 0 -> 13527 bytes src/tests/mock/images/kivy/loader.zip | Bin 0 -> 15918 bytes src/tests/mock/images/kivy/me.jpg | Bin 0 -> 31355 bytes src/tests/mock/images/kivy/networkstatus.png | Bin 0 -> 629 bytes src/tests/mock/images/kivy/no_identicons.png | Bin 0 -> 197 bytes src/tests/mock/images/kivy/payment/btc.png | Bin 0 -> 3532 bytes src/tests/mock/images/kivy/payment/buy.png | Bin 0 -> 3941 bytes src/tests/mock/images/kivy/payment/buynew.png | Bin 0 -> 24921 bytes .../mock/images/kivy/payment/buynew1.png | Bin 0 -> 4236 bytes .../mock/images/kivy/payment/credits.jpeg | Bin 0 -> 7025 bytes .../mock/images/kivy/payment/creditss.png | Bin 0 -> 4388 bytes src/tests/mock/images/kivy/payment/gpay.png | Bin 0 -> 103300 bytes src/tests/mock/images/kivy/payment/gplay.png | Bin 0 -> 27737 bytes .../mock/images/kivy/payment/gplayfinal.png | Bin 0 -> 19753 bytes .../mock/images/kivy/payment/gplayss.png | Bin 0 -> 2816 bytes src/tests/mock/images/kivy/payment/paypal.png | Bin 0 -> 3368 bytes src/tests/mock/images/kivy/plus-4-xxl.png | Bin 0 -> 4851 bytes src/tests/mock/images/kivy/plus.png | Bin 0 -> 18638 bytes src/tests/mock/images/kivy/qidenticon.png | Bin 0 -> 1649 bytes src/tests/mock/images/kivy/qidenticon_two.png | Bin 0 -> 1737 bytes .../mock/images/kivy/qidenticon_two_x.png | Bin 0 -> 1826 bytes src/tests/mock/images/kivy/qidenticon_x.png | Bin 0 -> 1763 bytes src/tests/mock/images/kivy/red.png | Bin 0 -> 57642 bytes src/tests/mock/images/kivy/redicon.png | Bin 0 -> 716 bytes src/tests/mock/images/kivy/right-arrow.png | Bin 0 -> 3145 bytes src/tests/mock/images/kivy/search.png | Bin 0 -> 2982 bytes src/tests/mock/images/kivy/search_mail.png | Bin 0 -> 10555 bytes src/tests/mock/images/kivy/send.png | Bin 0 -> 823 bytes src/tests/mock/images/kivy/sent.png | Bin 0 -> 548 bytes src/tests/mock/images/kivy/subscriptions.png | Bin 0 -> 631 bytes src/tests/mock/images/kivy/text_images/!.png | Bin 0 -> 5035 bytes src/tests/mock/images/kivy/text_images/0.png | Bin 0 -> 7321 bytes src/tests/mock/images/kivy/text_images/1.png | Bin 0 -> 5027 bytes src/tests/mock/images/kivy/text_images/2.png | Bin 0 -> 6916 bytes src/tests/mock/images/kivy/text_images/3.png | Bin 0 -> 7265 bytes src/tests/mock/images/kivy/text_images/4.png | Bin 0 -> 5891 bytes src/tests/mock/images/kivy/text_images/5.png | Bin 0 -> 6831 bytes src/tests/mock/images/kivy/text_images/6.png | Bin 0 -> 7644 bytes src/tests/mock/images/kivy/text_images/7.png | Bin 0 -> 5941 bytes src/tests/mock/images/kivy/text_images/8.png | Bin 0 -> 7777 bytes src/tests/mock/images/kivy/text_images/9.png | Bin 0 -> 7733 bytes src/tests/mock/images/kivy/text_images/A.png | Bin 0 -> 6857 bytes src/tests/mock/images/kivy/text_images/B.png | Bin 0 -> 6533 bytes src/tests/mock/images/kivy/text_images/C.png | Bin 0 -> 7662 bytes src/tests/mock/images/kivy/text_images/D.png | Bin 0 -> 6381 bytes src/tests/mock/images/kivy/text_images/E.png | Bin 0 -> 5009 bytes src/tests/mock/images/kivy/text_images/F.png | Bin 0 -> 4972 bytes src/tests/mock/images/kivy/text_images/G.png | Bin 0 -> 7593 bytes src/tests/mock/images/kivy/text_images/H.png | Bin 0 -> 5054 bytes src/tests/mock/images/kivy/text_images/I.png | Bin 0 -> 4713 bytes src/tests/mock/images/kivy/text_images/J.png | Bin 0 -> 5841 bytes src/tests/mock/images/kivy/text_images/K.png | Bin 0 -> 6719 bytes src/tests/mock/images/kivy/text_images/L.png | Bin 0 -> 4878 bytes src/tests/mock/images/kivy/text_images/M.png | Bin 0 -> 6569 bytes src/tests/mock/images/kivy/text_images/N.png | Bin 0 -> 6509 bytes src/tests/mock/images/kivy/text_images/O.png | Bin 0 -> 7912 bytes src/tests/mock/images/kivy/text_images/P.png | Bin 0 -> 5914 bytes src/tests/mock/images/kivy/text_images/Q.png | Bin 0 -> 8271 bytes src/tests/mock/images/kivy/text_images/R.png | Bin 0 -> 6404 bytes src/tests/mock/images/kivy/text_images/S.png | Bin 0 -> 7826 bytes src/tests/mock/images/kivy/text_images/T.png | Bin 0 -> 4793 bytes src/tests/mock/images/kivy/text_images/U.png | Bin 0 -> 6113 bytes src/tests/mock/images/kivy/text_images/V.png | Bin 0 -> 6761 bytes src/tests/mock/images/kivy/text_images/W.png | Bin 0 -> 7805 bytes src/tests/mock/images/kivy/text_images/X.png | Bin 0 -> 7367 bytes src/tests/mock/images/kivy/text_images/Y.png | Bin 0 -> 6459 bytes src/tests/mock/images/kivy/text_images/Z.png | Bin 0 -> 6166 bytes src/tests/mock/images/kivy/transparent.png | Bin 0 -> 24650 bytes src/tests/mock/images/kivy/white.png | Bin 0 -> 82182 bytes src/tests/mock/images/kivy/yellowicon.png | Bin 0 -> 634 bytes src/tests/mock/kivy_main.py | 8 + src/tests/mock/pybitmessage/__init__.py | 0 src/tests/mock/pybitmessage/addresses.py | 278 +++++ .../mock/pybitmessage/baseclass/__init__.py | 0 .../pybitmessage/baseclass/addressbook.py | 138 +++ .../mock/pybitmessage/baseclass/allmail.py | 142 +++ .../mock/pybitmessage/baseclass/common.py | 113 ++ .../mock/pybitmessage/baseclass/draft.py | 158 +++ .../mock/pybitmessage/baseclass/inbox.py | 77 ++ .../mock/pybitmessage/baseclass/login.py | 109 ++ .../mock/pybitmessage/baseclass/maildetail.py | 223 ++++ .../pybitmessage/baseclass/msg_composer.py | 258 +++++ .../mock/pybitmessage/baseclass/myaddress.py | 221 ++++ .../mock/pybitmessage/baseclass/network.py | 27 + .../mock/pybitmessage/baseclass/payment.py | 43 + .../mock/pybitmessage/baseclass/popup.py | 166 +++ .../mock/pybitmessage/baseclass/qrcode.py | 20 + .../pybitmessage/baseclass/scan_screen.py | 93 ++ src/tests/mock/pybitmessage/baseclass/sent.py | 172 ++++ .../mock/pybitmessage/baseclass/settings.py | 6 + .../mock/pybitmessage/baseclass/trash.py | 69 ++ src/tests/mock/pybitmessage/bmconfigparser.py | 273 +++++ .../pybitmessage/class_addressGenerator.py | 79 ++ src/tests/mock/pybitmessage/get_platform.py | 48 + src/tests/mock/pybitmessage/inventory.py | 15 + src/tests/mock/pybitmessage/kv/addressbook.kv | 26 + src/tests/mock/pybitmessage/kv/allmails.kv | 25 + src/tests/mock/pybitmessage/kv/chat_list.kv | 58 ++ src/tests/mock/pybitmessage/kv/chat_room.kv | 45 + .../mock/pybitmessage/kv/common_widgets.kv | 62 ++ src/tests/mock/pybitmessage/kv/credits.kv | 28 + src/tests/mock/pybitmessage/kv/draft.kv | 23 + src/tests/mock/pybitmessage/kv/inbox.kv | 39 + src/tests/mock/pybitmessage/kv/login.kv | 264 +++++ src/tests/mock/pybitmessage/kv/maildetail.kv | 77 ++ .../mock/pybitmessage/kv/msg_composer.kv | 178 ++++ src/tests/mock/pybitmessage/kv/myaddress.kv | 33 + src/tests/mock/pybitmessage/kv/network.kv | 131 +++ src/tests/mock/pybitmessage/kv/payment.kv | 253 +++++ src/tests/mock/pybitmessage/kv/popup.kv | 333 ++++++ src/tests/mock/pybitmessage/kv/qrcode.kv | 33 + src/tests/mock/pybitmessage/kv/scan_screen.kv | 2 + src/tests/mock/pybitmessage/kv/scanner.kv | 37 + src/tests/mock/pybitmessage/kv/sent.kv | 26 + src/tests/mock/pybitmessage/kv/settings.kv | 964 ++++++++++++++++++ src/tests/mock/pybitmessage/kv/trash.kv | 25 + src/tests/mock/pybitmessage/main.kv | 422 ++++++++ src/tests/mock/pybitmessage/mpybit.py | 897 ++++++++++++++++ .../mock/pybitmessage/network/__init__.py | 0 .../mock/pybitmessage/network/threads.py | 33 + src/tests/mock/pybitmessage/queues.py | 50 + src/tests/mock/pybitmessage/screens_data.json | 78 ++ src/tests/mock/pybitmessage/shutdown.py | 84 ++ src/tests/mock/pybitmessage/singleton.py | 22 + src/tests/mock/pybitmessage/state.py | 133 +++ 151 files changed, 7155 insertions(+) create mode 100644 src/tests/mock/__init__.py create mode 100644 src/tests/mock/bitmessagemock.py create mode 100644 src/tests/mock/images/kivy/3.zip create mode 100644 src/tests/mock/images/kivy/account_multiple.png create mode 100644 src/tests/mock/images/kivy/addressbook.png create mode 100644 src/tests/mock/images/kivy/addressbookadd.png create mode 100644 src/tests/mock/images/kivy/avatar.png create mode 100644 src/tests/mock/images/kivy/back-button.png create mode 100644 src/tests/mock/images/kivy/bitmessage.icns create mode 100644 src/tests/mock/images/kivy/black_cross.png create mode 100644 src/tests/mock/images/kivy/blacklist.png create mode 100644 src/tests/mock/images/kivy/blue-plus-icon-12.png create mode 100644 src/tests/mock/images/kivy/can-icon-16px.png create mode 100644 src/tests/mock/images/kivy/can-icon-24px-green.png create mode 100644 src/tests/mock/images/kivy/can-icon-24px-red.png create mode 100644 src/tests/mock/images/kivy/can-icon-24px-yellow.png create mode 100644 src/tests/mock/images/kivy/can-icon-24px.png create mode 100644 src/tests/mock/images/kivy/can-icon.ico create mode 100644 src/tests/mock/images/kivy/copy_text.png create mode 100644 src/tests/mock/images/kivy/down-arrow.png create mode 100644 src/tests/mock/images/kivy/drawer_logo1.png create mode 100644 src/tests/mock/images/kivy/greenicon.png create mode 100644 src/tests/mock/images/kivy/identities.png create mode 100644 src/tests/mock/images/kivy/inbox.png create mode 100644 src/tests/mock/images/kivy/kivymd_logo.png create mode 100644 src/tests/mock/images/kivy/left_arrow.png create mode 100644 src/tests/mock/images/kivy/loader.gif create mode 100644 src/tests/mock/images/kivy/loader.zip create mode 100644 src/tests/mock/images/kivy/me.jpg create mode 100644 src/tests/mock/images/kivy/networkstatus.png create mode 100644 src/tests/mock/images/kivy/no_identicons.png create mode 100644 src/tests/mock/images/kivy/payment/btc.png create mode 100644 src/tests/mock/images/kivy/payment/buy.png create mode 100644 src/tests/mock/images/kivy/payment/buynew.png create mode 100644 src/tests/mock/images/kivy/payment/buynew1.png create mode 100644 src/tests/mock/images/kivy/payment/credits.jpeg create mode 100644 src/tests/mock/images/kivy/payment/creditss.png create mode 100644 src/tests/mock/images/kivy/payment/gpay.png create mode 100644 src/tests/mock/images/kivy/payment/gplay.png create mode 100644 src/tests/mock/images/kivy/payment/gplayfinal.png create mode 100644 src/tests/mock/images/kivy/payment/gplayss.png create mode 100644 src/tests/mock/images/kivy/payment/paypal.png create mode 100644 src/tests/mock/images/kivy/plus-4-xxl.png create mode 100644 src/tests/mock/images/kivy/plus.png create mode 100644 src/tests/mock/images/kivy/qidenticon.png create mode 100644 src/tests/mock/images/kivy/qidenticon_two.png create mode 100644 src/tests/mock/images/kivy/qidenticon_two_x.png create mode 100644 src/tests/mock/images/kivy/qidenticon_x.png create mode 100644 src/tests/mock/images/kivy/red.png create mode 100644 src/tests/mock/images/kivy/redicon.png create mode 100644 src/tests/mock/images/kivy/right-arrow.png create mode 100644 src/tests/mock/images/kivy/search.png create mode 100644 src/tests/mock/images/kivy/search_mail.png create mode 100644 src/tests/mock/images/kivy/send.png create mode 100644 src/tests/mock/images/kivy/sent.png create mode 100644 src/tests/mock/images/kivy/subscriptions.png create mode 100644 src/tests/mock/images/kivy/text_images/!.png create mode 100644 src/tests/mock/images/kivy/text_images/0.png create mode 100644 src/tests/mock/images/kivy/text_images/1.png create mode 100644 src/tests/mock/images/kivy/text_images/2.png create mode 100644 src/tests/mock/images/kivy/text_images/3.png create mode 100644 src/tests/mock/images/kivy/text_images/4.png create mode 100644 src/tests/mock/images/kivy/text_images/5.png create mode 100644 src/tests/mock/images/kivy/text_images/6.png create mode 100644 src/tests/mock/images/kivy/text_images/7.png create mode 100644 src/tests/mock/images/kivy/text_images/8.png create mode 100644 src/tests/mock/images/kivy/text_images/9.png create mode 100644 src/tests/mock/images/kivy/text_images/A.png create mode 100644 src/tests/mock/images/kivy/text_images/B.png create mode 100644 src/tests/mock/images/kivy/text_images/C.png create mode 100644 src/tests/mock/images/kivy/text_images/D.png create mode 100644 src/tests/mock/images/kivy/text_images/E.png create mode 100644 src/tests/mock/images/kivy/text_images/F.png create mode 100644 src/tests/mock/images/kivy/text_images/G.png create mode 100644 src/tests/mock/images/kivy/text_images/H.png create mode 100644 src/tests/mock/images/kivy/text_images/I.png create mode 100644 src/tests/mock/images/kivy/text_images/J.png create mode 100644 src/tests/mock/images/kivy/text_images/K.png create mode 100644 src/tests/mock/images/kivy/text_images/L.png create mode 100644 src/tests/mock/images/kivy/text_images/M.png create mode 100644 src/tests/mock/images/kivy/text_images/N.png create mode 100644 src/tests/mock/images/kivy/text_images/O.png create mode 100644 src/tests/mock/images/kivy/text_images/P.png create mode 100644 src/tests/mock/images/kivy/text_images/Q.png create mode 100644 src/tests/mock/images/kivy/text_images/R.png create mode 100644 src/tests/mock/images/kivy/text_images/S.png create mode 100644 src/tests/mock/images/kivy/text_images/T.png create mode 100644 src/tests/mock/images/kivy/text_images/U.png create mode 100644 src/tests/mock/images/kivy/text_images/V.png create mode 100644 src/tests/mock/images/kivy/text_images/W.png create mode 100644 src/tests/mock/images/kivy/text_images/X.png create mode 100644 src/tests/mock/images/kivy/text_images/Y.png create mode 100644 src/tests/mock/images/kivy/text_images/Z.png create mode 100644 src/tests/mock/images/kivy/transparent.png create mode 100644 src/tests/mock/images/kivy/white.png create mode 100644 src/tests/mock/images/kivy/yellowicon.png create mode 100644 src/tests/mock/kivy_main.py create mode 100644 src/tests/mock/pybitmessage/__init__.py create mode 100644 src/tests/mock/pybitmessage/addresses.py create mode 100644 src/tests/mock/pybitmessage/baseclass/__init__.py create mode 100644 src/tests/mock/pybitmessage/baseclass/addressbook.py create mode 100644 src/tests/mock/pybitmessage/baseclass/allmail.py create mode 100644 src/tests/mock/pybitmessage/baseclass/common.py create mode 100644 src/tests/mock/pybitmessage/baseclass/draft.py create mode 100644 src/tests/mock/pybitmessage/baseclass/inbox.py create mode 100644 src/tests/mock/pybitmessage/baseclass/login.py create mode 100644 src/tests/mock/pybitmessage/baseclass/maildetail.py create mode 100644 src/tests/mock/pybitmessage/baseclass/msg_composer.py create mode 100644 src/tests/mock/pybitmessage/baseclass/myaddress.py create mode 100644 src/tests/mock/pybitmessage/baseclass/network.py create mode 100644 src/tests/mock/pybitmessage/baseclass/payment.py create mode 100644 src/tests/mock/pybitmessage/baseclass/popup.py create mode 100644 src/tests/mock/pybitmessage/baseclass/qrcode.py create mode 100644 src/tests/mock/pybitmessage/baseclass/scan_screen.py create mode 100644 src/tests/mock/pybitmessage/baseclass/sent.py create mode 100644 src/tests/mock/pybitmessage/baseclass/settings.py create mode 100644 src/tests/mock/pybitmessage/baseclass/trash.py create mode 100644 src/tests/mock/pybitmessage/bmconfigparser.py create mode 100644 src/tests/mock/pybitmessage/class_addressGenerator.py create mode 100644 src/tests/mock/pybitmessage/get_platform.py create mode 100644 src/tests/mock/pybitmessage/inventory.py create mode 100644 src/tests/mock/pybitmessage/kv/addressbook.kv create mode 100644 src/tests/mock/pybitmessage/kv/allmails.kv create mode 100644 src/tests/mock/pybitmessage/kv/chat_list.kv create mode 100644 src/tests/mock/pybitmessage/kv/chat_room.kv create mode 100644 src/tests/mock/pybitmessage/kv/common_widgets.kv create mode 100644 src/tests/mock/pybitmessage/kv/credits.kv create mode 100644 src/tests/mock/pybitmessage/kv/draft.kv create mode 100644 src/tests/mock/pybitmessage/kv/inbox.kv create mode 100644 src/tests/mock/pybitmessage/kv/login.kv create mode 100644 src/tests/mock/pybitmessage/kv/maildetail.kv create mode 100644 src/tests/mock/pybitmessage/kv/msg_composer.kv create mode 100644 src/tests/mock/pybitmessage/kv/myaddress.kv create mode 100644 src/tests/mock/pybitmessage/kv/network.kv create mode 100644 src/tests/mock/pybitmessage/kv/payment.kv create mode 100644 src/tests/mock/pybitmessage/kv/popup.kv create mode 100644 src/tests/mock/pybitmessage/kv/qrcode.kv create mode 100644 src/tests/mock/pybitmessage/kv/scan_screen.kv create mode 100644 src/tests/mock/pybitmessage/kv/scanner.kv create mode 100644 src/tests/mock/pybitmessage/kv/sent.kv create mode 100644 src/tests/mock/pybitmessage/kv/settings.kv create mode 100644 src/tests/mock/pybitmessage/kv/trash.kv create mode 100644 src/tests/mock/pybitmessage/main.kv create mode 100644 src/tests/mock/pybitmessage/mpybit.py create mode 100644 src/tests/mock/pybitmessage/network/__init__.py create mode 100644 src/tests/mock/pybitmessage/network/threads.py create mode 100644 src/tests/mock/pybitmessage/queues.py create mode 100644 src/tests/mock/pybitmessage/screens_data.json create mode 100644 src/tests/mock/pybitmessage/shutdown.py create mode 100644 src/tests/mock/pybitmessage/singleton.py create mode 100644 src/tests/mock/pybitmessage/state.py diff --git a/src/tests/mock/__init__.py b/src/tests/mock/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/tests/mock/bitmessagemock.py b/src/tests/mock/bitmessagemock.py new file mode 100644 index 00000000..ee707e92 --- /dev/null +++ b/src/tests/mock/bitmessagemock.py @@ -0,0 +1,38 @@ +""" +Bitmessage mock +""" +from pybitmessage.class_addressGenerator import addressGenerator +from pybitmessage.inventory import Inventory +from pybitmessage.bmconfigparser import BMConfigParser +from pybitmessage import state + + +class MockMain: + """Mock main function""" + + def start(self): + """Start main application""" + # pylint: disable=too-many-statements,too-many-branches,too-many-locals, unused-variable + config = BMConfigParser() + daemon = config.safeGetBoolean('bitmessagesettings', 'daemon') + # Start the address generation thread + addressGeneratorThread = addressGenerator() + # close the main program even if there are threads left + addressGeneratorThread.daemon = True + addressGeneratorThread.start() + Inventory() + from pybitmessage.mpybit import NavigateApp + state.kivyapp = NavigateApp() + state.kivyapp.run() + + + + +def main(): + """Triggers main module""" + mainprogram = MockMain() + mainprogram.start() + + +if __name__ == "__main__": + main() diff --git a/src/tests/mock/images/kivy/3.zip b/src/tests/mock/images/kivy/3.zip new file mode 100644 index 0000000000000000000000000000000000000000..34d555fed251e96b6493497f61d8078c8cb68b5c GIT binary patch literal 3043 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 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/account_multiple.png b/src/tests/mock/images/kivy/account_multiple.png new file mode 100644 index 0000000000000000000000000000000000000000..112716197dbe10f0191e2cb2f03b11e623e9af62 GIT binary patch literal 9798 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 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/avatar.png b/src/tests/mock/images/kivy/avatar.png new file mode 100644 index 0000000000000000000000000000000000000000..b006bfa2a69bcfce8d50e0ef220452aaf490ee8f GIT binary patch literal 27865 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 IM6N<$g4k)%&;S4c literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/back-button.png b/src/tests/mock/images/kivy/back-button.png new file mode 100644 index 0000000000000000000000000000000000000000..e260b08bd191ec7badbfa32baa1b1f10c1125251 GIT binary patch literal 52318 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

>+H{M~b8>%pf3JKtc-k{y zH6r05AdFA6I@4JymlEbiogQ29Q55c7S)tWK@uySGq5o!u%~cvUZUcuv)2rSXC<~Hc?0H;sjsG zCRRc33P84Zn`C~8G_~=7<{*Z-G%`leSatUn6n@i)_;xKq>O47Ad^i5^e|E#3oCKr^ z>wRrTPBigY2n3AZK3vEnAOn_Hcn}@qM@nsa zhX@|c{M$LMTa7NEC$y-o+F$^vzsB)7V;P?;2-GuN|KE3851XnpUv^T_Hqae3c(6f& z=pFb-=O1z4c+LgPJHgdgk7JWKBu=9zd@Ej^i`bgO5(TVHNB-1{&qG@ERxTMY6|eq( z2>=vPHvW!|GoncLqkbvyT4tx!Ryb>c})*v@?#vWM9bk#~N{o*sM7^aci4Q3u=X4)n92R?z7{?CWVZR2;y?P&ZZ zHpt0(F-9=z!c{LCbTdl(RSMZf+M6c!H2N^mNW}!7jWwBZ+9v&a2l$7CMc%l@evl2C zh-=ex-%8p!9H*NDP74sa$G)x%X#eAV)eHmg3wQ#sWc^ZZ+o_1g-^9m**F%;r>m%8J z;%F0$YMv)OX_6)uGWBjTPo(Me48>mr+$?lK>H>ek;5m@v4{Wo{~&DPc1s%V-1DXs%6VqB=s&vc?|hNJI_pPe zAd-o-lM`e|Zh{c~l`J)Vh@P8gg=060Up&Q}u8LnS?co_#DACCRn~=Zwm|7nb{wzli zKk|b-wr>h1>2FLQ!xDe517Few=Uq3**igxw=M(?BC&s~6-g}JOuV^%w7Q5AGP7%NA zWZev+@t-yWxessJ3rRunocL#ffig! z!>}5>Sc&eAKcmEbkiJ?wHzm1`#oIF4Qfih}+ul_olZAP|tpXG^O&!WD5bZ1qI&du?z9PcHi$&p7(kj z5sdn{td@Q;6(O+&&FakeVUG8XO45LZP;yN}tzN4BnzeFSJFu9v9-P85i#qvJPtF8z z79#&lEB%}pg8n*YZ*4w?egiINdXulF?~13%ujFpR{wfxP0-b{~`Xtli4Hs!fiV?Vo z)mrxpryr(#$!FSGt!G8aeYYsN7(mMyWj-^=(JS8M$kt!NpP~lLNil3nH)^AJJx|-N zo0;~9;O}TK=U`xFvLuXvImgE7lvpo%h$X6(b^{5j?K^2Ot0*oIWR^POx@5|n$BDQ1 z>EYIuZA7i5Drx#Rf{E32CN-}=z#Ksw!35|1; z!p+BEbgTd1%LhL+vnh*##SiSGw*qkbO^!#R4|v0-jKz{_-}?d?4*`c1hA5*>Csp3j zah`WQn~}3`h5zW#F2tD>I{yqdr|P~{y3_3;i%rW=W>N@ptht1#7$G?SHf`<2p);b! zmdT^?IAAs=;-TAy1~X3?g30%~KK?!%Xt-=uu3+3&XU?Z}?D<8w8QG=Bp-T%`k+K@T zz>4dR_`cPju@vQqfl8i%A6JJoXDq1isU1^eq5PQmqM^LWao?WZBj|O>#H}#0Y6-wn znl*rfd!DCVR&?K|_8#x!(Y$||YPyTI&F>8l0UwASa9Ucwyf@#P&cev&c2*Ca6Ts2K zy?v25;d{SS-`v-=0)q+!a8qln)LQz#&2=P)n#CG^H*M_qc?uc5zlqdv=&mP6XU~St zWG*cu2Yec$^u2d9BsY{}+3sHppn9{d(LRi`bA(1Im+t$XJk}riI=7Dj(Fr(z%lugngaDa z5UCLhzTwMVsP|@oe zaRa`FLv2d6ea`?jInY{^;ace=x^xP)=*fq2xY~+*8Rxe;e|fAt^Ng@ZsVh_|9R{oc z_U5Z~nJ>xXl)~@5EWQ^#w9gXR=&w__KJ~BU$(WY_XHtjy#bw~48n zcn<-SxW&#C_YBzM(4sAM1|%Ou^i7xcp=uME&-=P>iL16)-w`!Fk4`fX!j;=-m-y1F zww)dYJmVKs=i(c6v%-o9CyB&!eCxMi;=NyiDe;Rk?L6r+W{tTd;i=y<${B9?9F?B{ z4MsabV_B#nYiZ9yL%6Fp$qX#s3MHqnm_2pg|JddhFN3C*9{tF8we^aKSvAp*-v#Gs{Z3tbVJ_>7*{i? z8UnI!jys=wves90NO`?82|Fr z#JSAg45o0B;5*r!RF|`#zu>Vr|IurmYsN_DqPX73qaG&#Oc?*TbplOhz_u{R2Vt9V zPD{=h+qz(yn9by&d~9qQ;eHSl=8^nJ6YQo~&_G|1j%zER)FEFt;KM?RL5@Sh6tazr16-wyEgX~v|u?Bc~OErv_BV%B&%e|CEHyF zH|wa*HR)^Ho{>e~w>F12!xW2KnU`M$SWX{VGS0-N% zYWazoxB}O0elQS^q1N^es-`KZb66-YZ^2co@b@;%_tzHu|;Nk?u6 zN2_07q}cep*Uj-(`Uw0eS>L2_@(gxfknb0YFf0b5jADXcr;#NDENDWn*q7!tN;_A< zuM&RgBiLh7I_5jCh}?fCt*rWFIuQ2sln`Y@8#DhEX3Czh)%B9Q?-AR4-+e&-|G2zY zP)@`9>eXp4t8Nok*YVt^Lt0~k?0V>PgXbp5n@>Txl1Znmv6~ASx#?^sPr1CE+Bro0 zn`#H2wp6fLHG7ze-(m+!V)~S3J`b5!L6OX0H;Vb#Z2Z|D%Lw6y1cWJiDMskM)ydTd zBWZ=*)AzG1TsJmLZKY~X(kVG)Hmr8P(%-o^iWeYpK8CI*I`?Yjp=#R^uCZts&qY(! zZ!+&Do^5lazDJrOgV%D0+A*=){I9zEnHB(kyks}9WvZ0bU%i*ytuJLv6$(y8ya79A zTpsVG2*aR)us^HO(|E~hsn-Vf8$4i72l!pg zSPb|Ylu@bmFA6^hFWhg@B#=lVMCO@!gWV6sVCqsO@&61E21+R&lER^bI@R1%sD6hX zI8D%!IH+M@!a6J^&;~O$$sx&iiEoxR*5^N&2LSme?@j|eM;xdFAX@!`(t=~&7lmNj z@O5ip`My6=aFmP6u=B;YGq!Uv$T{;@*iiUx(3Ez0w(H=$6x7)?q;lo05Hu``PIf4! zjUl4u;W`x>jhE2twW?amzihSL#kdsjy%7o&)*M#H*Tg?nH)WpvuJSaEx-U^#j51jpDGRg3@AXO?dj^(e zeX*i`w%887){1hWn@b}B`EfvzBwfNrmhFf0>B8tT1V3zJLncbb773qFh-hkxzZ4Oj z@7!*g_4SWXvObg?v81{rvT!?Eb+pEHMcU0sf~O5oZQp4NlQUOSn&uh)oyfR{3+WOw zlJNmz!t27zcfzTtZ^CN zI;hDj1;>I7y9p}>Bh~cjO`&nn4qD}st7uBaRTFh^=#-IgFSNUdgzw{!f05 zIc#TAIm41Xid$F91i~@64~=uH`nGfVh>vj*Lhr3&sh!EA))LKV{*vu}I}1JvHY%|b zpZ9A+JW8xFw@|=l4+B^^df`Ffh|-D={K^>smpf#pNM?bLa%Q|{QBv}4=T_78l&(cf zTH+?%vmbx;ekhE)(6_X@sofXM}r3O(M4YH+q^2G?gKIW zY_gDe<3%W{aOEdSlZplBW7a(_5x&xLZEddis~FA-P7+(I^HW40kq4guyj+HHlBxI1 zg>qY5AOoO$_@De2N zb;oZn25g~nXH$WL*N8Ch6LXSX{A(A$$7aexLTQJeSos!x9`o2$eksIIzIYE`3$hQE z9~OJ%Tcr$CD3GKNb4dikIUwJ0xp+aiU*DvlAZ{0OPmc`Cw)-Q=`=5$R*FUWw4}F~i znHDA+;mpTikLIst2d+?+PuY?-mr0_xFk+`w>0fKm!V=?3X z14AA?G1wLNP@D=VJJ07$(lo)&^q*p>WVN?l zVs>l!EY>p@CGmTQ#b?eVJJE{I(Y61)q(+QP;!pY&zXD$Fv?50iU;)_dpy27u4}He2 zt@2ExlCa~4L|<-YeX5zW!fd_UA`x(RSODL1O&F=AAE_j;$L>=|H+d7}1EmVoG%t<- zrR}-M$DhNXgqp*i{TLed$&K20o`hV^`GJ8f;l(Zw4O7+eaXsObxe7d+~*NrTm%TuP8TzfoA>=}mc>Bu zt=0*jd-6qL9g3ws&tU^TD3!6yUs;hF>*8ZmszT^^befiVX`KFUoA-A1p;p8cWirmpHTQIW_v`GF{ zhDOvAXP6o5F^<=?!(D)1XKwR_ClD4GB+gV#XKEZ5t)J%o=L*2oXLoi~@u{xzakGn!5LPDp~`)_1B=&l9TN=kvFpI$tm!S~R7QpCNCe z5v5fSWx81HC(pu318nJ7a33`RpC_*CgMhUR(C5g}(BmiW^o*ZZ8IIrF{>)=ehTQR- z>+KyO|GVLtf)}gIte55u_5dy=8|->o)2Uph5o;A2U{br;eLYjO>F$Tp5$p_WDJUyoZ)~ zWK@AUBaA|a3U)(ib-5~~;&BQ7b_SXF-~rfB&xHL`jx2tE9dKWbwXe6nv4{1s-iEoK zAjC^ z7cZqQ7%r9AOFcf??B}{i`1V8iEh9|UJE#GfBVDhgkpz@lB1z+D5!FE(SdB--?@5Dh z9=7|1qz+C-lyj@mHrU=AoDHQsLkpsNv~t`B3wxSG_>!4ik?Q3N*e{Hyd(m_gD^YXx zyqTtN_B(fVYeUV`8S7#3-5R;oIGLH+vh!}&08I}cX@s|a9WK>oZw+` z^^8Kmf*CG66Sw1A&&|U6W(YUUq*9Y^J6N%{78DSgn@fS6le*E!74R0n`j_-~xe?!o zcm2OR=nXAKT13;m!Lvb<4qG(1GQ?>n@FeE|N?xne@PS{YrknMg(lQYJ6OIDXibOJ{ z!?hyt)+us1=cTKxo?O)7eDINz@YWbk?L&y z{O8}yvC*bEvj*cFzbSIlJ2y5C z%-Ii;7^4{nZq=y>D!u}tf82sToLNVMk>qNlAvzbI_lk^v{r#K7U*PRpjn(Ph?urp8 zFai~~z&iljsc({R?eK>SwL^we3XM==4t9&`86*&LpR4{qw%#hL%C-#`ozmTnwB)24 z=|)1jySt^kyCkF}1*N;YyQQTOB&9=YzmxA@Yn|*<#^8PGj_bN>hU$^hQrGG*?=cu~ zU?cc$m7MnrX`fq7enT4b^hy4DJS6|9KTOm#W+@(Ifni>#;~G9nT=Eu^bLMg8B{2Q# zq+E|FfK9u0=RI{$vLX8}!w@9;wQ|%L69(n~{Ny-zs!*0)r&0O$SONO$I6qKJY5)J~ z0XHaZ%{jqXn!z(-g+SRBle_mZXRC#s9jejeKN2SD3EVKKq*)g(O=Y&1c|I5Gx6a7} zw{M)MSkG^0bRjul4vV-DB_kS)bkst07*1%>n>^`G1lo`J*T;(&HqWdD(qY(Mh%zCf zdb`hEy~!Vijy-nEGqHK6k~_iBgOHA& z1Yp1aoBI7FIAE^3(zTQc_FkQCImUH+lMFX@TIP!Kjt-QL2IK#*IwHSdqSG%#EU{dY zL9VmAfdX&Yc}|WIZYA_2Oi}Fe;awQW0jNLU7%x2MBp`rL>TnEuI&Z(KRReDJ;3>be ziKS|rW#0@S%mc4578LIQG`s)}h@x}fB1mGfz3Z%ZW7YA1h&Kba@PKWPF?+x%HiN2# zaryE6y=_*ay)`Q=@y4?$#2&vLPi35#&>O)GMmHZKJtZEo88f z00{x$BN??)vyvc;*TYzdiyFX_hM+ndzn%Er1r@2+`28PR0ji9y7w2iTsJDccB-$Pl zX#MF=+5SZ8(c_O@0x6mJgGmYCOO5p8PZ;UCMkr7a8Zzv8(x|R${A0a(|65N!R-Ml6e5lx|&~(K1 z7M*gs*a|7@vGw-MF481?0t6HZh;0QX2nhsUcQ`!km9g|iY&gLO?)FpMWuR8Qyv(fq>wmpY`TeU0Gq&I2>3hcNdmvR4D!xA8aFVjQ zzublTi<3e`IA$e!rYnJJdk|qb8gcbxzBv$6B^$N}LM+TVTM0?yFx_h4{-1iqHlSkk z1lS;v%Zw^f`JBnZb5+m{P+?RD+;y<%h>;%=UwT=Md7R8sW;;MRnXBbzOZNB5;=K) zXKr7WhQ7d_P|ADl2HUY6-9x_x6(s1{)>)^Rg89}468^myORm$P%8#&B-2)QX_6wsq zKqZk>LQ*cPhHtyJX>biO5!c{odBpbr>d0^YQF5yI7eCoPw85IY{eJ~v$p7+m8 z>}1ia(>&j^fC}2U(_l=NyjlJ=CGoYBtmQf3vMID%O?6XD&ZrdkMELhszPQsdEKEf1 zWZ{9f#42}ty7W#XK`6>X6<~ba28vcI#?>Fzat^-w`Q~A(kPLg~$2Dyw;1ANChyC*I zQ3uGmciictg!_mJ`dHP7&cV(JC(Wd;M%>9u>|zFLm)`=zdiW>0!)sWfRj2}aZp|o9 z_&>4A`yi7yf}ENnDPJF!CTy$s3yh1<|2)?}I0)&JDZ)d2FNSXCoayaxW#VLpNl!=Z zXt`i5Q0v4A`(1Wv^T+ne4I+bUZ#Kal4j#>Fz54+dY<60L#Xnm*>k<@=Tu3Ht z_h!>RbP)iA3NpE3PbiV*Tpma=a(j=P*Fy>fdeW75OqQZZaNyr3z_LVTlySG7eVw2e zQjiI2rQgcT288Y;YyV8(axJXH-2}foOe6AAA?Q*ex9DOR4w#RUsThEJuzqMZ_!V#_ zWnP?iA^uZFPdcP=od@f>xURqdO$wb)CT%8qVgD6d=05nK^3I>l%I>8O$ayx5&+^^A zIWOt^`S=f*IMI~^6j5LoQ-%$iwJUAU0n9l$PmQeqX!!`)LA&gxtGPwCzi?}1k7-;>9q#F@Wj5g|gy<&c`5+(<#yJV^d9H^oO#_{sb*{~ja7DF4BV8@I0m+=)pn;mMTh~akcs3h&jz6T#B=AcVjJxN>xTlukArOc3_mrZ@`DNL<+7;@v{<=8GlRX)O4QK^)CiF`~FKHn8k6qkrk;X zWRm^mgxgGP>(Vw8}--7>@+5e zWyWqm#4C?8W(|>V*8^`Qz3lG1*vm`?_hS>xbCYAvfU9L@rcnGe3XofbrOBG1eG(Ax z4m&$$t2gjuPbfx*YA%4}cxHGb{3ne3Pz1R(L1!yZi}ZV?Pp3}#_%(C(hxa>SuMMyU z#<4)&;1RE8^+uGZ$v|r~W@+{Pj_LkA)-MW#}%Lcs#Tr zo6Z87tE&12?W^rpcMIM}dDwM5udBBM4Oz;1x`3j7jT8{y$p6a@NjXpzC`kJJn+Zj= z)!6z1G|0!IlptH-n_&8EH-wG=MTms|R{@mb)V+bCr`y=L44@1WI~ETB>&QiDcI{Dy zTpCEUJ^4PU=H)n~>_Q{+&kmx=EuVk8+n2!|4jOgcY15fkzPDols$0AM#npN4sbTM1 z^xf;v2@3psW8#i9LH3MJetgff980z0dnHjtyf>XdSUy!S^y=be)J43Jf?lHe{M21xbbNST$3)^Z56o-*G3pA}`O0 zDcK_#eS`6R+~d*`QtOUF4&u=y^$Y7Ac1da6yWo0XhUpd2DQ5U;VW|VrZ(7$@tCmB` z8XZ5wJ$xgK9%VHwE{maZC|{Y2cQ7d!ZH|h9B)ET$l2t8~v-(v}$1Ht7>pL&C|0j9; z&3NwTm^lP<(o`B!8~i3?#ywm213O1;wZTTMP7vZmB!8HT9M0^(l5y~4fWZibnouIg z>AuK^@_$;tUTVtUUxoJeBv4+d#}2FE^5T5z;X|L{`2!At-Mj?N2GnRF#iF5aRaCVg znmDA70co`8-0ZxzM9f301_6W7@@hZw^6itmwx(++^Kh*85}<03_8TODuK-l2U7oAh ztN4jD7~6vOSMw?jC)m)xAbI|sw{Vrr2kUZSmXHx$lltO~Ez;T)fVm|euH){-<9)`;tdk=AEhU9!Yu7jftbMhc_ z1TrDz>`U!O(Fx>YEL3O3YHZaVuuJ^R|{PrtK2r$9i z>a}UO>t9LLsEO>wuVU17mom2`OSmDB_!IX3c>% zz}2vnnd*%4Pe5~Y+7LJkx8UR6MCpG$ug~f4KAQU0j(_?Hw7gGN1-wnKM2~c(G;D)` z2Leu1D0#k5G&}iR>3xzw02mnCHtj%rq=72Cm>k9~-Kzf!mQr=zA4cY@hkkDPTjouk zcHl0=QyTShhQ5g6V|Yb%iWm}#cwf!uO@tawR7fB+Yn(w-nTMSe18R(e0fCst#oFDh?B}ZCOm1Ymb&+co z=(Ua=M*kDSz4TQgAV|dTTI9-*X`_j>T0!)~r>sv|roTi-f>KxVyg3tG+H7B2c|$W+ zXsE>ayTM-E(5%LV2XgxB!=u~nZB*N@9NZ%SuGpsqKf$ay#w;B`M2}C^cxr=8m&K{w z{%b2xiA?y!EuRj?f(n27KF&IzbiLwsGG5pt(UoWatH5sF4g_QTlT3Tz%fZz^jY)Ih z#ucz$f|6brYS?eVjg?xKTCEnMa)DY+uvEnPKmIC(q#ElX#&yZ#z5k{yO=5Gq$zy#7 z;xHEPX=_Vl7Kc8}eXf8=nk&{@9LIw4Co*NAD}jICyIHLpJG6yi7&(78W(Dd!624;L z?`ivakh%@;mkJxWkp^|ZjV}?HpRUq6u}H3F~gqgJ~@A z-HK@TPTJu8SPU*UHbM$rVEmGC>^{)5K?abxZ}g3uilnNo75MT)at-viqHRKxa;a`U z08%Yvb}dRTyGcmVF zTnXIHROoQvzGc*KfCDES&kx{N^p{nx0+sB}!`k3Wv(Jn>G{tlfvQbAtQqi&OO+gHJ z(>T&JL(}rBb8jkf5=Vi=_@;x9BEbFo3pOt5o%|HUi^W9#Hny&G8-`qOC@ND?%<_qw zCMN)8n6q;_0gk?$fO+%0Ow+<~sjmvNZ5 zVtV!-ZSFHrUAmdtTx+#kt5HdGaMz>VPs-xTgX>;Q?MH?(3GmoQR@2ID!}7QLzvD+5 z*WH{b_&9TEP$W|-fH4>~(`C{j>_f>z7UvmN*&`qKwq{^)(kdjJ`{HwWV&2wiwGcp_ zUej(P6zuL`O#6LzcP``IRWc%%_6KavyOAL)Q2K}^MWcb14bV18G?#_MKliy49S&dy z?d2VN(VUvDJr@m3#3=WzO`?nIEg$0Gp{&Bmg;CSpD>MrPb_#pAUl)&h@kg4g;OyAn zs$nHqsl}(ezFIvC1lIR5uLg{tWtG9pVHP>k%+_HoVjw5m;GteE#fjM5ZXXfIrZ>i! z>E{A+v8T`TvtIv4>;Jk&tw$E%`}vai5YeJ}loy^8e(azWkDLwew2Z5_m+)d4y8Nod zUxr6+AtCP1MS+6?VhRA!54I?Ly8}SxKe{M!d1|Nkdxb6LHQo-8#3$|_=Np@i$%!Se zbGREeRE#Ww9tE18X7d>cDN!ZJz`(q9J0iD1n;K>l9&33=hGTiTe?kQ904dsu?$mX{ zbq9EqrBWZq@r+Tq}NOQ(k#ZgogvS-e+laVen>=&9^hK*a64}0773BN`>8XpuM zy6Jg6KEK}yz=CopeC9QzxtHXE z;#C}4WKh-ZnsK-w0hfJLD|Gdd5n8?v^+zr2EokvTj|2BRG+?noV6jW{n$asi)^tF$ z?3;<@*HeZj)Jt(1K4E|J;-uRU=QjLGg+W-hEJFUt_VdCFY~L=FW2FEbS`kIcsNj?d zlk~2rcX-Zg`U`54s>22yRJq!LtIH!9&gD@4&-w_~`r`*D!s|rr(iMyBMI6VeTnC_w zzqnr)nDoR&^KVJalxS{y7XByT#0RNY_2i=1fq>ej(jtrNICrt{x1X@Cscij&1_%eY zd)YNeKh(C~{=0v@-jL|o!LQv)Q#`#-!`b);h~61J-td7jKJ!}nO5Ic*2Jk__stcnj zeu=bJU6E_QEVb)^)?K6wMpd$_7s{K)NnSF@@Bm1MrBrl6R+&Q(K&H_$WgP?;deLzY#Z!rxJQPgP?GOs@Xz(C9ExLZ)IowM7alOA&|wRVjmICqrB-=`PE9 z%L1P{M7cFj3~^2y$uH#64{o3p2BX1m$Vb zZRS5MLeYs$>a~VN>B)jq`ASsq#{75PD1K+S<+WicuBZ2C!;`jqiO1>z>Q(Vv?hr@C} zh#^9^G=6k$uVB+LG?HYWSy66!f#>C}DMQwGOLoF?ZHjF^1I_<`TzLXap!1h41ZLFn z%@TF@Uzhc}KHdQ4%e;?%A~m)?;~Ved<9Cz+y+H!w6rE0?5zeU-_3)p0{IVM$CR0u&fwz2_U?l6>_dh#eF*n|& z(30&+hishhjhZ4-Mhu1OVtS>*_J|Rc-!hRm1-Ci2V$q=z*HK)&!pj}|K|Xw!BUoLa zsS*{y7I$n#e?tZUY*T6J>42?lGoh~G^!BF*QllXUHWEy}44f_RunW9py^^7$X|G58 z)bAijPn(f}xhN!=35NDGqiCitHxLTWs$3fRpT)9f&xRa$50PuRcsxrT zm~EL&Yj>D#Wm=S=n3e&NFOvJhjpSl#T{4V)iM@Bcbn6n@55fgNXG1HCNrJ1ygI+~{ zk*zuq;Cr|0i5=nM_{J)1W~ZC+bn<#854)*Rp~(}lqG|7=v%EXa`>0%VijK5?pe*cw z@Qz!GW7{g%LS~0uK!;{xALY}M(Rm0>Iw$Qh+e#GD7L`qD{jGti2c)V(x-9*xk(Vmw z!1P>zf(uwyx>u2We5;yCpZg#rLR=qu#j7Ok!0aA9vGe-aq$1AOa5!mIhvv!Rkpgmy zHA-+tQLx+Utn6yNB#U}dA89W7VU`qxifg^RX_9*se-tCK{NKjDu0gGXoolJ^_Xe{# z{I@;54jp+M8qR3^A@ub?S1rdH0QY>aw3N62gFS2Ev#qe|1Ot_hSTGcH+^Ow8;P+xR zodrfuKy%TGX&?s<3t_S+@J{AUUT)3if4LbA30w5NOrpPB+dz7Ia?c(q-687)+33vP z_H66+GrQIYG)~MH*@okyAv7JMPHW5kHmQUOTt0iT{5uiyZshd+RF$-Zg}%Orx}}FE z+5Go^cvL|a?pi2yVL{piXmyy!OO$DE=o|V2;j9Pk-srNu?HeyOPT#_!r`O>j3Wb5H z`7Ae@%T}SzTLmop9^<1|5CsYUlp)RzM)9P1;x3-ahsI5x?s; z=1b~%=k>$WV@rV2kN6Iax40~*Dtee$MKymDPeP>s5?Xx`Bb0<2({c6bb3Xf8)do*_ zrImdLXTL&DN*2QrU5LNbPl`(SLR1|k$YGFyjxyOo6bT-R8c25CSoG3f^4q}HTI6## zj+G6;(F~Qb;+z)nj5*QX(5vqggIyRu{sl~t)=d&p{}nJMdc4{-^#fTjSfEglh3u0pd4i7Z*#n!$eT-^nHzAz@26SAls{bwLv`zTtTY9T ztp(1>JIKSDh4!NOT#02?6D`u*loMRWAPLTV4nRFz?$05t8Xwx6O2cMCrdcQ7h3Zqo z8b(9Ih58dV8f1OrRpMfuxE+nbHTe^d^JdM+b@b~Qm%K3!Q+0VNJo@QM_^LxYY2f`{ zazl{uj!tJGzS-ioe;sfxTH5I-=>uU&EmYzirvgd`;TDDC$mQ>Y;7iO}M?N(F!yw;n zo23wOeMvsnc@N3g8(hlgGwoRJP(oEr@6OEl+J@Zif%BUshUb?DfA&KC`Cj2lceQhz z!ZBtSY=63;+MlSjM_Z*Qnj7-T;cV^mLDSe}MJ``w+)iEAm}+$FUib*4EwZ-hTa>YQ zTn1D$=mA`cf4r;iJRQQ3@y9P9L0+)CwX-yG$aB2B8+z$xP_8Ob*R z&9j_S%gUr02|0i*)Lj&%?}5`_g+-J7O8qdi(En{;e9(%4L0)pq$(H;+!wLbMu`#T5 zmb;tT(#=>IC1|%{(=DTCe@Eb(L|e9lC~W)N+osK#8CA$RXFEDkfb(V@#F@$c{V^)2 zm@u<|U26k+^Ix#9`9(PVsf5#G-ns?#@|hSQvb#-z1a1-otOe9BM6tzDf{`32zzR4S zH%XoikI3~z-C1NyEfke%x*d$q^8AQBR1UptiaOS3QI|)aLtp4B5k@5I!Uhd&FQCpE z#&2=9e$WM77sB3;nEj2fXg=CIiWm(y+F3EiCRQs> zlEv2y)7(thLaCxk>+0FlB`mQhw42eH>>1D2Y9wnAeQTyP^OU8-#w)N6$J64db5#ZT zHwS9f-!-;5zA0`54X>2HBVHeD@aCxzx2d8>P^s1E8zjKT?W+iqSsGdt*?2iqIIgWx zChJHftV#<=!qC+2rK7Cu?W^@?j6$af%*h(pDIr*#B?lgUU{kLSeKJif;m7E91pJBx zUG%Wg69-6R<&ii(#IfU+d&f>D{XKV$oS#|y#%{Kq2^ozoZcQ>mcVxBfQrRQ^Mn7qM z4Ht%H6KcP@NU2QH)2x{x6sS38yJtMT{J#}ud7TO;4sN;^xy6-3yBV&Gm~pH4>e1WW zA9Ox?aP$v0{Nt|4GPg5xr4inZh-0fAB(hCA5vJG4tDo}ks^v4cCC?Jq1UZajW-`7t zUGX7R$M$J9BgE6}!|?hvDJ7C`_T?;0okc-AKYcc@q?w@%B5^Y3oHrZ1nRTkOggUDz z)YWkG^<+fc2>P8To&13os`s@F6(PO;OCiy6rZ$F17n`4u?l;^i!4`6O#H!w9<< z<#V3-*c-htwttbb*qYF^l}eTs?0Uoo1najyq z$6GZTb3KYhkzhhudUBt@&CRhplHfvLB^MIe5JkZJv%3(rS#H)B+kfOs8607%w%ZWA z>$Y`JbpWg~4b~!7R;t)==t-ZDLgrGDt5hYmaOeaF_xUZSHXv*SbD^m^d7^S4sZjM^ zgWr%78b2(MyShn7H%A{)zlmelKmIa~doYFZ)BM+~P1EXiel%e8L2={RVkIp98(eg; z8T574>8atNC`(Z!L*Y2XRn{alt)n;~!)UAnZr;vhDq1-cR%JXN4C2{CP{504I}u#9 zGC^NenhlKP>Pz9(%-dGbUt(Gw{16#d&X0E^Gexs zgvPEQ1(h)l`xTCM8AB>uO!w~7TS9?nixz3XyfJ0l^KaQTc++S&R3yt8X|tfOd&!x& zg1C8pjZdhWLdQHz)Gpo%1BZHER2IdEYC@PPpeQ%5miyUmW#r*CYX{MB!*D&an> zhN`#vwI(KY7^*i)1)xg3`p(aYRd-tb%s8ex3k)_@7mnYf1Rd}r%lJ9^Q&F_*d^~^Q zLfPi;;Me*}3=Xxws^>lLs>ibbr;p4Nri|4V7W+iip3Q%rJl3Je8Cb`8etr|=9=ssw zAa5eupt(8bl0gc7ggnN)Po{%IGMZ)2^p!DX(c?@wk-;W9)}L z{JsiNH4Ky{xX-y!;nkn-<6>c7K2(;#Sfp*LFGnnPzq3uf&M78BTYt>kaHXbneAh0O z6|5P498C+eAn5ji)d=eqsi>h_J~;5|Hm+vRYCY^?YP|>y*}6EtkTjXuc^(jJWmcO2 zYw_GK1}XqW13P~Z<=tY9yNsQ22?pJyH^uy)H3WJH${rNYryB9t(v)oBf` z49OTxj8C4tIfI+~aN%@vdcs@1(WN{iV48fzbFOeq(f4S}`ab|tcGn_NRWw9!ON^-r zZE1{&@!aw!8cgw6SD`mDHKW!}pj`NB&*zJ4hHS_dh~bE2i04oiJfN+JI%)84*Sry| zJ`!8lnGvsha@GtD1^-oN+xy=gt93z~EW4#f`#C|;b6wU_Up*0;KLcZB?`4>8#^x6o z?9&u^9SELEJlr{6g0}R|syN7G^}VYr>8@P}aGN^efgWB_n&WA2<*7l(HZ@Sr2kTr^ ziMnMi6`H!o8w_LFRfz5#P6{eJ|K`o=?Cr19WVfEag;~%a2}33O7i;_a>3>Eo@>bu1 zbiyaQhNgw^+Zq*jHiP_TQMp7K*r?fgu^xuGie7eM-k+QOn;O>n9mTd?6G;HbySo7U z3-G!US|gPs{tN8Jsb^FTijx!%+GWS7Y_d<^htktpvTW|q9XdIl?L?(>>Si%D1r@v1 zvqvXiFU+m5=GMD;&9t$YV^(B^usmbA#Rv4u?(Ijk(`IM5kG47)6iJp?hpYWUcCnPF zc0afXx@g>&AC+Gy=Y%@ZmY=VI`gSKr2%IaUxp7M{izyMvE_+a8thlvlA%Oz5Kc z=FiK2)19$mV%wSpuOow;jFsPTvH3N^F~#l&;mcuyePZc^HaE?xUEy=x&IoBTa+$G- zS`?D&%g$Us={ZG)@LSVmz(3eBNz+uqaeNaHVI4LI)0a{--^i}QFy;&|>JianQU;WZ zKU*K(?&J50Fb3LcB2@S$gMexBWTgq38+ibEz9JA&6^vcO5Uk84@o>tUfJ{H!%%wgd zo%oO@0RlYD{4(q9QRf0%jDo+2S2#}^Z;}m&d=H@j7~)o3bEK0shYN-ngGQ*k$zNLp zPM1OY>FcM$rZNp%>J?G?LbO>+Zgm>Jd~fv30s+VkNw#*#SBF(LWQ&UX zNaz(|@RCM?GkRLV(+StQ+AOGeY?fxH!Y%a*z0QdZ|hc7KkbHm|4ORk!TD%gEJ`{=SCeiC|NNk2#&$t%s4*$I>Nh4nq9A&lG`J_|u!bR3DWc*ilDzRB-x%y4Ei*XULX&QNC3?KuA_9kEM;|#~Zujn)) z1C+89u_&Tw1n{T~!;yvssl8HM|A>;m9?(&ro#3A|*ju`1jZ(g|+)1-30iZ!h>$Gon zRw4t+)`|1+Nj##k=OhA6q~D=we6=5Km|Lbzn#F8@ECSpT zX`>_8+xGh)Tc^c!4GEag6E}0|4Y?a#*lJFKFyN8S`J6fJ9#>+;Mye~0E8hkPI`O6!b}w^rn3Pt^7V<(1 z@x_wEOyzy1)a?Ou()89YvaH#UhRwO*^nPEjNN_Wws7GOG`s47OX^VV%N!%yW)XNiC zn9m~$4<05q4_vdT>>`aV6c+dmib&vwj_?;0<03Aab6k847a#o>N@rBrhg~=ISejm0 zJ{n97=Lkx^lx;(^73p8L_xLtGQPnETO>Z}u&`*D1Xns8Q7D+qCFqs}lb9Ls5DiQ_6 zj|SRuQ8a7L+=j{=&ep=c5_S_cEUa+zEdOYeGgI8cF4z`8T3EQ=wu!N9j(n`_#lr|C zwHl@4I%$5Mr~p4Hbun7;L5le5z=E~SaFHW!mJ0X856crUiKJ@3v7`4&UR<1tn|hZU z=N3LW5?FmxtCbB!hgwqB6FB(wsV{afymWjewp{XgciYHc!gRff4U zsEk6i%}`0$do*_osVkU~sIu{4#)k|ytMU*8QAe%T_I)sV7<(ZosrO@ zA9`0neX8^>Lgg_={vpx_^+lVlbb$gqNDu8yeMwe*dhe%ctVJZBdzo?X)*b>V&qxs$ zs^t+{JsHs;-xn zEKIj$v20A@?`{Qo=qqRG#0k_ZAm9)I(Mr#>K|Z}SRSmfFm-$Njx#m5h7b(fFu}TCD zepi`4g(S6#R=*=>IK}owMK=p(EzKS0Ur>0xet9TeT5kXoD#Q|r#&Bdd&-WuB^D+c6 zgp4BjscM2+z+FdFt|8B4uP+5ce+pBd74l;=VYw`;*PNioGNq%GQZO#sH+*+u?vLv# z^Av7CfvbV&llrpz-eM4psWD=Ez?NARBrsT#-i-7xor*68I-;LAc4I;R_Awi06us7_A{n=D;7g7|)oE!2`^~C(rN#eWs-255XbfpocGBwVa?YFwKu? zF;z3G7+)0WdP~q%c|qKtVS!%KG1@g;|D{4a%};p>U2WixuTW8y(_6^Q+R|6JBYAf>v|u))WnXjv$@ss1;>QBs2`SKGo~y@Os|GBefN)V0ubc- z9Bo>KUKW-Ts+Jk)ZS<+ej(yE$yL)}D1ZtQJ*^lH!)m`B|&AIKN_%@iiJUp6>+BB6U zVLX6cYEC8Hj`3*O*V&jlOZf1AR!Vb-4qL1;26g~{NkS#!io`r<8O1oPf{-W{D>Av|fkZR{ThY7>pwO2rSAV!QGFBY8EZ=-lW%gnTL!YQTD1t%L}?QEQ5{s!4)0n07=$yRI~_ zK_44wRs&QpM69bWSTJESw`C6&S#7!GrRci4$bsIm(r?SXzGd(eYx3%MDrZ{D}+6}vL(M>Ln#wZXN{61vW3fKC50NymHSyphLfk3{+e%g8W zznl64xhXR%A_aiMiI+1ir&qj(I@)~pI}g}BLWByd{=79{`ejP>890hnY7NZiEKh=lr(y-YaW#PRlbZIflbce_J_ais zkLDH8uX)_pzsy)oSs(fZam_o;|)Jl(ET1^ z9=N=I@LlJ2udGAWk>R^aQS03H%IKO%mpsPFNZtR8Q$q9N1w6W5vMNLSKp8&a9YQs&!kH zlA;r75Owg)1zvn?#m;=0h~wphC@9Qtx1lvyL|kq7adcZP6}k|RFswJ}Shn5*wSX-? zOo6`aCol}*bS}DF$^v0KtK$?egRyD3WkaU)fnZ4}PD0(<;nz@f%6HY<9+)fEP8%K2 zRtl2b0_xhdBK8Sph>F|b+Wg{`qks5_K0kb6UM$-Uwcox*&7MXFQ+{_Rieo+quK{*A zp-Q~*<%&T4cek-gN`+_{$a!87Q`5Sd^G{4!?gJL^{NFsYnO1|O0MvttiaTYrW=Rzc z4S)09!ufE$pZPk!nI=ZL=`Ed)LjOl9TigcCdwiXnbAq}j+A#HB(*2Ha*hUw~74$~- z;C2hfun(l!syXQhJs?k1I2crSO%(YX%uN$x^`p7FbwUaT(CHZl`0%QuTLMWxNdX(X zf6D+dkz^t5AW-nB`1ET2>W|Gg%AUT*2w!qd$FSL>24k=MO^PflA6kbI5=hEvF|k(K zGgZQaTvIH86x&|w5XK}0bo?#>(^sEut?DY z>SjW?IQW~;yN6d#NZ^+mE;H4fsmV9U=LQQFC3;C^eJ1$CgMmAcJi)A)ie@VtqN^Zd zWDmbGMeRkCw3BHglLvyNA@%-sXAj_=`=C-TE42Rk4tnz*PG?+yM{Ph8d)`eM762nuL$#oI0Y7&evVM(zd(6E_oPM{a11yn%*b^~&!xd}{wBw;NVlu8 zI+EyP$$r3sgiq+G-`@ve@_(>k%BhK3DSJE;%tB`%`+Tdpa0#t$o2aQ5hS;CFTNUxS z^b4HAKx&jD1e_4^s_F)YAJ2?YZ8@Du@`kvT#btP$Ml*cKU=6ad+sTxP9pJ!af5~vQ zK>`cDP+9|MC0#sKJ9+ROAVi9lrWWm3#;NUTq=olHe+D4zC;Xfd-o*W-snUCPR`f^Iz50uHP;%0D5`$twgTSVjp;W&a%weXFx{XI`>KYXf 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 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/bitmessage.icns b/src/tests/mock/images/kivy/bitmessage.icns new file mode 100644 index 0000000000000000000000000000000000000000..5fe52d4e37f925df8d458316a15cbe5fb794c4ae GIT binary patch literal 32984 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 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/can-icon-16px.png b/src/tests/mock/images/kivy/can-icon-16px.png new file mode 100644 index 0000000000000000000000000000000000000000..c649919f6b618caafac1b214606e2bedc0af8249 GIT binary patch literal 1007 zcmVXQ#9ix0+sz(kkDEK^_H;-ko* zupc56!EFd_Es#;#OD8|pQtrJ_dcVD29}r$o&N=zy9Lg9&Pfyt!!jHdl$Sr)(;!}QEU zUM`pUNMy{U;c$=E74B4`(I}2odn4CeD3MI^ zd|`{*w#`k`tRbnDGz39FJf7qyP8>tf9{>l({RiXd>}JO*&!=UcZTspZr;!!U8oX30sy77`0L=1)zb0;j#eLqZF9sE$=pGHjvBbFclrg!r~%=!5}wGU1)7>h49hGSNe{4y=bU^4*lm}gQ6%f zcZ}yV{YG>^}|woO1x6gb+>$u}h^= z^JMhTIfug``2#iZdcBZclC`_Ld)@7pKcQ5#IJXZA2mlIzQA)9}u=x3t<6t{v(u>yOgBIaUofaAxG_LEl*2>^gG=AW31{!vlkIOg-$K$4uOs;YwQl0Yd% zE}ugz{tv8@1&_zG6AT3266a$H2t)uOxfu$DAW2TRBp2LnHzcPEgb<|DX(Shx zKq-Yk;9FPKx)w_5mYC1wPTju!%QsU~(_Ml*N#D&4Z!JGMf-XjRY!6qma3i#l|%Q*YWnJ-Lp=POy3 z(bUigNs=H40?5elC;)&6gc{~fS=S9@v)Sg&&1aVxvtIW5{ZCJyKJ}@`tE7T~0Q^2b dY}-B@{y!04#JkNFC!hcT002ovPDHLkV1oBV+@=5k literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/can-icon-24px-green.png b/src/tests/mock/images/kivy/can-icon-24px-green.png new file mode 100644 index 0000000000000000000000000000000000000000..652da9c03b56349b5c2d52fbdcb053d8a38b3400 GIT binary patch literal 1898 zcmV-w2bK7VP)$A9lRXZM`5 zmt-&5mQ6!1P{Ih(GEgm+Vq0|(VFU(L1OdgW3?D>5KpdUXQ3UYkhYtx_YdSl-9@1K)>h(G^)ruT^>oCSeYcCPUc39HVtav|L z2zLw9eFc%CQ!*}q>5fcB2gDL>GA&se^KUAuP^v8?q5K-=z)KizQM&0M^0BdK&s zeZt-RD!%XI`#wPsaNxkfr+wc?YYo2dE3Gwq+S;WsHY!?c5fKcflyr7>O)Ourl%`CU z&aN(ohDJ84p59&(iG(B)2}D8;95_T%E~C`iPp+4#sVO|)W6PG`W0;0<{`srKxc`Bl zscbe&^Wr>{#UfWM`9Zk&rFEi2gdhkI5v7zefZ*+Sj&@Zlv+MFp7SViKGv(>&VkVQx zg<*if`=OK)(=>yBz4&hdweIw#&E&E0x-dK)(4j&Teg0N<_G5?Wd(MIzkYHJow-*xap?r(OT2BZy#P= z)7Y3iQ94;#dBFu2phSen9{a=h{{FXZztdWywI&EdDwP?Y`NwwZ_1Y_UE!uKvk2lD4 ztsE#3VdpDtc-m7#!@~`4yz$0A-+OOpW9SEb|DHR()x0FXb@icZrW zT5HC~$Je&Cb?ogQ7`Qu>aQVM#-c^Jxp%*Fv=X`8Vq&s)F@sl6_RDvMD^E|Zn z@pPTrZo8GsF29r?I)9vfy>`SchZSZf%hwqahTL=SJ+WjmNivxvolcQSXZXw3C#cnG ze}1)gz#Z`?m^oR7H>+PZ2o=dhyuSI{o7IL*8#ZTiO@1PoEDI`wcqpTAonD8u{+Kz&feToqdDlFgQrHGF$x2ri~Z6uJi7P-6Mb~rLZiEQt9MnFTK38Y+BZ;mX;P$ zsT9d%0>^cT$KxboF(Rggh)}Io=^N;$uYZ8R4@oAIP2Jr+-vqD##>U4#M3LybgG0}c zjZJ*MrKN>LSsEzBmM59qm!ypi$TrShwdz?z8N)QCtc9dnymkuq-=eI5Z ziW8G_MzX9mh0)P2t#x$8@@3erjpIa#Mx)q{gKOJFtO$l-;0FQ4$s*m|y=d(tA~ZHO zl1`^OY&*JPvQ%R6qD6B6$8k7ztmnS=_Vx#ZFl5=%)3G8ZYt~#yL$U!0Lqz5lpP>x2 z)(npp=ol`C;wmwB!8+;cCs zJo&_v{~aD4Sv(I3f`A|h2*VITsCgc>*;&5+jT^b@sw?Nd|5O7Y?65n2IglLRJQ+;q zPWol0!tzwXFWx&F)V3-SVb|_9P>S|F?Z0i?v-hqb3@}ZTFbo$UVHhHzFk71?-<;=> zM}I>kVtK`4@w0d4w{#Bb5hjD_IkD>yCVZF1zBY~LI3~&07*qoM6N<$f;Kjm&;S4c literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/can-icon-24px-red.png b/src/tests/mock/images/kivy/can-icon-24px-red.png new file mode 100644 index 0000000000000000000000000000000000000000..cf66fcbbfdde03e06bb776702f0a25b3c0d5e0c6 GIT binary patch literal 1893 zcmV-r2b%baP)Y3nELO*(e$Ol?&hs}&tP_QKGPjxDun zDYj0%03nGfSZujpvVmj+Nj3?aO$cnVyXW%sLrBo)<2&;_zxR2b|NniJh~Rl1(bWN{#aU2Jcfc^UqQI}3Cwd~U?WOQ_ts#oQumwt_=Yua_!EfMXB zjlWQ-REqkU8HNi5Zo6k~(3_qiN<{E|9}!VXDGl(C9y{J%DorfU%$`C0ta`@Iohu}h z$#f9-Xj}}Xl<2zd|MTsC38>|l&8a7yN)s{+P}J>g-Yq>nXYN-b!jYpV@O<}$v2$Y& z)z@c;)i}gswHP6Tj%=2`zC4-wSzOuJsFa9sMKhTfw2R!xEliYXTS8!dI_C0&3 zR$OXpW2cHE#f3|kE=7q5FTVJj@BR5tTc3Ab7uR+1gMd=$0&o27H7b?zd&{4B_BIY2 zK>GW$NV zI>81!UDtW%-5sT=Nkzh8G)*I&PH#JTs_UVTCzK|~d+fPHA|5iWFwtlf%e3%3kG=o- zkgl%WCIC$-g;I)%a^>cpp3^^wC*s()P0Y5@HI4p!KjWn`GiIbG?|tle7Nr!Oo!Qna z8ym503p;9K7$M5#GTF|P7yL#2!nB6d+ty^E?R96?tR0_{?Tb0rW7cX8knXu^UMNcZFaBPPfCq`!GEFOF8 zaX#F$kGi@9%b(x$m)m~wh$I(ZEhSyQUXvhT!;d#aW3d>qSd2s>PBM|?4_jWQTrU5f zefxgSM;|ef&(j(NKh+2nF~_c~|IT`~a`npfsdSy^#9~}^%~j)}Q0RgF?(Uo0fLFlJ z!MbV3O@)Y{lmbv9A^^IsQz#67{?MVrZ(b;stW+vVsxF1&*yx%zVd%zY%d$2_qtP5d z5C|ZILLoi@5D^2IrIgA8{#5aPDQWKM1xUL)9v**JPD%I+eR4RoPHL>j|kw^s7G_j*mLPiJ? zp<1mnFgQrAr-$*aEEy!-x`ZWv1%8XAbl#>dC$%5~G#ox}G6VzF3VM@RNs00zL|(9p*y5NSf)id97fkPd=bXR#^~%kNvSlB@B2g|Vdl=8(>ptp*)k0%oE@Gt zl3_IE2L{?**A35~HW@%YGO4=5Fj%7@o7rKbzS-f z@^p4|A_Asqkx0ZDJAdx!{6POB{rNsD%en-3{jYDlwQbw>FDj)dm&;V$Dpl8|R4P%a zR9La%CN^$-oNJd{gNV?1;v}a|bxjwxq9%nx;k%yaZVrdTEL^w{%d(i#I@`Cu-SEoG zuYA5qjDNjuBjc=}F&6>L=pZ|CbAQX!ux8M5etFx(AA7W%= z7K4Mk$>koURO(V9!j7HIpcE~;T7K2MYxfWRz(?10f*_cN1VMlV!bEw3Onrt;FFZ>q zWK;`-fx~%P#}zsj?&fL{pBM^j{I_PVDK`} z^U!r2rPQ<`$HymF`=vGK@BG3Yp9zBC=;G_H-&XehyXB(RPXmX6GCVlh!H!*1D%C}V zb7L2L-}fn(%M^=6DwS%Ju4{KHjmCIwe00Hr%l{Zp)c#k~6^3r$EWV09SbQ2DI13FW fcrOfFEb#shq@<;J=u6LD00000NkvXXu0mjf?$)J_ literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/can-icon-24px-yellow.png b/src/tests/mock/images/kivy/can-icon-24px-yellow.png new file mode 100644 index 0000000000000000000000000000000000000000..0a26470be75d46c75fdfab422de5448d349a8f4f GIT binary patch literal 1890 zcmV-o2c7tdP)b(lmq?tCl{}G)bE#ZIYYE%}tu--rRfkIcNDHB*6N(XV&`dwbuW?w-OP8AfVz` zFF{0j@9FSBr7~ z13y=}T#kkd>KQK-*m(UHqM?C>qC|u+3=t8flrn&@<9KI#sWh{$e(^#Y7Bw(+?pz_8 z&DKRxh{5}zloHc4!+*W@x`0}D;gSaGa&_321&Rf`TlPwS|Jj?Bh;Xdq1VN}DojNyl zXG23hshT9|R4tZm(be6};9#EmhDEGuZdOV}xMJ>@t*y@YrKdeDAM+dG2>wYqZvcQADXU&5M73o@%x7*19Y1+Xx+m z;lymh&bM0dwXX&S2Wt)M^{W2!>_j7TPv z)qFnxPXME3trl$XMZ#ThS-GdPeZo6RvXIli<|C;(uL43E}i zvsvou>gen1V{u~>&pr1%r+RzI=5hpq-lvo~a`D9?*IP^nb@2=6S1 zUdrVO+S|F+B2uK1UUmC-x2xmFkKc0i=&>iK&re&+mN%7c+rF*8KYwg+kl%N9g4S%E zcidcv2udjcB_aY~nkI$9_~(usIr`FcspRHzS#k?S)g9B#tF^Ag14aU93NOC+!@8xg_x zeTGLy=5VscPMMaqy0Nj5bUIBcmBeu! zJkKMUNMM^5B0{-brnm1jy{G#KgNRfrwVgqx301=_Kww6pLy)Pb* zT{B)Ra>2rdvjE3&IB}x;-qzOE2g4|0>5>bvY?C!>E~h3{gG3P`vmc+K47An^4(I9V z>Olk?$0d_VGj;ylL;2yMdx!FaxUTyF;Dx`v`0C3qzw$+;6qQN^U;Fr4Q!16HR;#RE ze-pVfOh?*8oCoP0Jn2n~rRUbC*I9m?*%| zPei7lP$I&v-7TOLt$SL3+p=fx55p+LG)z zu3mpn8=L`#fru!Au`w7M`un+VXozjaBDFI!yl&e( cok$S;ABK~;8vR3>qW}N^07*qoM6N<$f_537oB#j- literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/can-icon-24px.png b/src/tests/mock/images/kivy/can-icon-24px.png new file mode 100644 index 0000000000000000000000000000000000000000..30f7313eb378b69c4e2f6cb66264c2ae678059e1 GIT binary patch literal 1852 zcmV-C2gCS@P)M^!E?E!Z`=4*Xy`ht_>fhjLl+eV_hy>=-Ek(A(EP8wh@6>5>i{Jah=UrfpOJpyyEE@4x%__we9`O^8Gz zY+YB^0D>Su5CjlH;N;0u?*~Bu&N&bS0ppzGa8EB4rY4DVPDBKSF-HCU16P-HEJ7j{ zNB_V8#>OVLvurL0*LBHtT@Xo}Jb4<4WQ?)(U)V^qv$OC6A8)<&J1DB6+N!HAqgS40M1-^F1`!DUX8C&gnRGe@ zugOKk3q#X23}v$zA1@%4ZpGc13}Zxu2iAXy3X>BMLSomhm+{n7Pk?idful#^*Ezyr z?^5Ynsk5uAtC7-^+n#tfol2v%r3J6O`Z`vx?m{NB3ZCb|_3ZsV_dC<+bR%^l!h!ug z@VU>%#>bmZoH+5fD_6!g$w1(jJD&Yfx-GS5)rys1j5Ug#pWXb-IOmw2o?hS6(|2Sf zpMOr0oWEy8bh}FcG{zVdMbZCv^7OGpGT!ZY?yDjYR4SFe34j4u5I6t=RaNovCkHF@ zoiaipD2jq)GP(ESrQv7p6jU1RJ^w~D8qrNF1lzV@nHGW|z_EWH$MA4|HvlM%F)+q3 zSF1lXI(qr%k!S>tSt5A%%qNy7fY#@OJ=EhAw1( z_N}dtZ{57*k%%G? zyxTA|2q7B+k`g<9wZry251!{C8jT8 z-p;x=cW;j;6M^e_Sar{;s;=ulO|_=rc^-)9w)un*3;rOYd80A9^_8lsC>CeFcKY<0 z4{lZ}Ry-a%wttgbW>)Wx=%_7={5wQBW?I>Bfy4Z=_PG=NJe~Q9lP@w~J_0!8!Mi z9zFhP-S^kT<8fHF3CFQv7zRw!gk#&#H626*-}f;&HHG}>D5{mY;+HpXy5F+Q%Xe-M z0U*X0G)+UPbnTIkKRHlVHEm6MdpjbL2t3b)X_;^w2d-^HS2Yk3s?{on^CK7@$wLGZ zp64ZohO$2d01W`9rl;?qQ0VgL*oRY7S08R~Z--+$Fw77_rVcY?z%ng_LLsP%0zrgw zxr|)yA}WL9CMO3t=b?@zi(yy>Of!T~C+VOB*94LhM2&|}VG20s7@sU4HnuD?>4oOphsFb>PI zZUf%`%U?g-yLaC=7-Oi_YVf%apL0|y71Zl>Y~1)DcJ6!;YuDTZB0_HPA}(DTUI=X2 zCW^)4PlABI9SVie+1UxpvTpCezI`9Hzx&R+{}~^jXqkryAs~c+loA9&&G%88o5S~i zunk+bJl6RAN16Z-N~LQLgR%WmN-SO4fpAk3q?Bk*BpZN(hk5|U(0jP|^`65=ej%iQ zs;ZDuEGZ;^06r_>FlqtwW!jai!%a;Br5)J=X qQ5iHQ#>b literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/can-icon.ico b/src/tests/mock/images/kivy/can-icon.ico new file mode 100644 index 0000000000000000000000000000000000000000..903bf3dac1acf042b971b1b96ebc700852d66768 GIT binary patch literal 99678 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 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/copy_text.png b/src/tests/mock/images/kivy/copy_text.png new file mode 100644 index 0000000000000000000000000000000000000000..dcc63611a604fd7e6071c82bef2c3689c689c91d GIT binary patch literal 2701 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 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/drawer_logo1.png b/src/tests/mock/images/kivy/drawer_logo1.png new file mode 100644 index 0000000000000000000000000000000000000000..4152cc40edce2815f0acd9ec48d233dff917ece3 GIT binary patch literal 2041 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 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/inbox.png b/src/tests/mock/images/kivy/inbox.png new file mode 100644 index 0000000000000000000000000000000000000000..dc6a6f7590ea4e60253b7289386c0c1e35e2c15b GIT binary patch literal 687 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� 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%0DtYQ1&7 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 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/left_arrow.png b/src/tests/mock/images/kivy/left_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..0f01c425210ed5264291445c462d18ef0df8b08f GIT binary patch literal 2444 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

da1Z@@=)C#bc5oIsGy)A7 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%0Axy_!V``!*DX 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 BLgN4c literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/loader.zip b/src/tests/mock/images/kivy/loader.zip new file mode 100644 index 0000000000000000000000000000000000000000..c80a3a17e22d05832db089959679ec1c995e0cb9 GIT binary patch literal 15918 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 K`X3bl!2bc@Mkc@j literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/me.jpg b/src/tests/mock/images/kivy/me.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f54c791fe1ea1e84882dc1214d1716712ac7fab7 GIT binary patch literal 31355 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 tCwV6rnfQuCKNU6jFcVUk5#;GNv z6=N1I0tT%MMZuL{z&{Hi8>Jw)G3tDRtn@2XTO)`YOS5p{Lbrk-=t8@2p<*_opi$Zy z!c3+nlgxPUby~D4RD5u_FOz$I_q;cWs?};xN}UF<2miJ{rD^)WOp=5@l$*`w%{Y#? zUcax81|{AV)Q%@^Yhn1KI3PA;>w0ao6;?ym?iI2#BzqN#O%NPID##48aDx^cC!=$PtS`2aK&RGH6ztH0Hf|HZp zW&7u(*POu0j^So<_^sfIGlMC0T*fS?PcRoPWJA|DdZtM6pXPtocL4?f`5zIWLM5Cu P00000NkvXXu0mjfF=!z1 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/no_identicons.png b/src/tests/mock/images/kivy/no_identicons.png new file mode 100644 index 0000000000000000000000000000000000000000..513f1d10ac78407b11c593756bd08ab3ff3cca03 GIT binary patch literal 197 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 Mr*M&{2)Uj4KW|iKN&o-= literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/payment/creditss.png b/src/tests/mock/images/kivy/payment/creditss.png new file mode 100644 index 0000000000000000000000000000000000000000..b45cd9977549270dc44ab886759ba0e469e2b40f GIT binary patch literal 4388 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 e+n} literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/payment/gpay.png b/src/tests/mock/images/kivy/payment/gpay.png new file mode 100644 index 0000000000000000000000000000000000000000..62aa55cdfdac8527adb2fea6b26753dd33b82eaa GIT binary patch literal 103300 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¯|?isPzfzi|U|#{WGz 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 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/payment/gplayfinal.png b/src/tests/mock/images/kivy/payment/gplayfinal.png new file mode 100644 index 0000000000000000000000000000000000000000..16d0d5384f7084f6ce46d4b3ce8ad6ef10a88dee GIT binary patch literal 19753 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 ix*dTE000000Kh>U8fqiq__JdG0000LT3 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/payment/gplayss.png b/src/tests/mock/images/kivy/payment/gplayss.png new file mode 100644 index 0000000000000000000000000000000000000000..67f293fd5c88291c25f4393254378abe04cdaa62 GIT binary patch literal 2816 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 S+h)uF0000+9?M{QRh>sM6BXo}Qk@#>Vya z^}4#cw6wH_hK5#FR)K+mIXO8@OiY-Vm|b064h{}2EiES}C%wJBczAdl8yiDILynG) z6%`e6ad9*>G(|;4Jv}`jARv_{B@F-o3}s0~K~#90%{=6j1@0jI(YriAntb zAG{0>fb>*V*m%!+*)LntOX-?>HM2U#%ud325Us|O_2{(UGsgD&(`Y>zucBb?CHAcA z1+WgE?GK#A_=kz{GhR3Yzr$5@#Bdfm?x%!X6`!sXcC(UB7<$o0gWLm~$m?J=)C_&c z1+lx~>`=e4qztFQ5=F1XGMG{>ijHC8z~0R^Y@CE_T~rL?F&VuQ;~~+?NErItf5iN9 z{M(XjNdksm+5x>1DS>fCGYlu4@yjtmyGbO&_^(rbIsRgU3}ZU$DZ&QD5y7zI_p^#6 zVn2cz`ncFd7cSVY0vX!dm-5T8wO`3F9=)6(VYocsbOq3%WRff}(X-*AXR5zm{!=Y(HEl@1vs4<+IX448a&OGR=j9h>GFs zGbL4QX&Cm&OEjV2HRKFerdbHF!ZYkQK?RC3hJAiTOUPbS3B&#xnFl21M$E9UZlaC= z&aj`3{ux5oFJjooP^}%J08YSgYI@xo5QO1;hDqPD2@x**WQxzQU-_U66McsLcZ79t z-6D@+e`+$S;2Bg7!*{YWH*l;Chhaa;hI%;YFicIa7KHXvaVx`jiDjB--HL4tebc=O zDE4h_n>L1KyGt01)fm2?qj;dD-2colA^1c4e-DhBI20KDyPUoW{!|0cUE*hk_!jng z=-VY`Z7BcDY-T6EKOK1CFh?se7 z7@Io75KC}JL(oD+j&)O4XNaCQ{32tBn7mr@8KOOfYS&T?;A(Ac6*Y$V(hTi!5a^q_ z;W5Pjgd2+%N8mcDZokS9KeMelt|UhQTgP8JL$o1f>`2YfI>Q!HneeYLBpBN!J+M>) zR+p}nPah0DJi!Y+L1^>j;S(PWQ#`}x)P(@Bio?Sq+!>-H(hN=)41w>~-EZ9)QgnL< zT`;s@Vfa18xHF_Uebxy+*8RES?W!PQA47QqE=yqdBalk-n2nzt1t+`beuM8;) zY)n|7nGKvELlgzh(et$`0l>f}sWEgY7>btdtZV;uKUu}fEP>Y4sWGHz_%8WtY<e*h!qpu&)%6w430 zXKVh4M6dQ8zyxFYU`P?M)pD{rgnK}x{0NoE;Ag**EySO>yW=lQ z*;CM}N`?egL?+mVvb05^xRXEr3$&`RU`XN(`Pr{*2gz+|{v82V=@bk}ydgh^mN_$d z`D&Pdfv_UPxnQWHtHuRiMn={vkf%^VZWLjA={ILc5|r}SDSNy^GiR9>T?U|K?fr}) z?4u3v4Wg`Otx#iSc?=BEb<_r#dk7>Bm>?2@LA%i72@ty z5t{(Zor{biiBJhQ>`ug!oC*y``%>(3;H&0ZOcMF4fir+?$)b9d8uGDB)`4AzwZ&}M zC+j$K*C$-qPNhn-EK^Tto^LafS}ygb~7PTM|0fn=q27l;8X1hZ8?)qDYf6 zZLy(elsrZ;a^N`VECI)qK9;d%4!s4Nu0Jg?@WOcRL|=<^S#?l<=i_sFIU^Lpn=|A0%pv%wtbj^RPc?Ea(F^vVSPl^UH$hRLhx6zsQww*4Q4fXd4dnLOMU_LLtt@_VGna z{?Z6|1`)|r&odUtSq$N9=#N^!lS~6}+eHosIZq>MIwjJ8$DVply6jezYJi-H5;dKM zoPcNMPs8{atahJWTu0YHF%yNEYZLuK+k3fxn2x>+yk0}>7de|KG?mM1xqsS`4N<}w zIbSNuev=FP%>Si0x(SDaoDmi^od)Hwn_-E`5IN^93c#W=?|9wqbFHv&v--l(&~xzx z82$;bv-;q4S|s>BJF#zzXoeh)+j$FUiYUr{{qhTV?G=JgxSg4Sj&g{?Zl@e}BVDgP ztQ$jETsRUCw9-Co!^hb**lrOvoyv(q!&0x0^M|m|R5Y9Bm+60pNrMU=XGme^fJNKz zSa#iLOD?*ooCAiP8_>izhr1RmI>A%@K zYHFGa5Nj&Qe)Cs^tTYcoT^9pT7Z#0NeidH;$&fr8b!`*g)2ZRjUEdgL zkEn`9E|Y!n1>l?T7&JA8v~{9HVRu+=0+Z#7XPqeR`9IN+Ny_Mi44`<{`qGWu1RV>n z{0Yr&!)LuVE7f}f-{Je;Wi8z3eP1n_d)j$0uihP>*rxC#M!jL1ZlZS4C~XV9(Z6+?1I3I3iL(>OFwtJ2>UWEj%Bf{ZuB zkWjeq$#jJb36(p$%%2rQpr!KgpS(NoKXCt{>Bc4)t*2T4pY9=TPv$sXK+0+PS3&D8 zS<}5u5cKW?enXd`d8hOH-OJ7G6!E+9hG*_H0k~VeP=b3KT=@N3!9>M7SsTIRi)dy9 zF6{Gah(>vZQ!(!n+X$68#D~pI7CqG=zI;G(ocliGQoiUyG5Bwl~fYJ>|B!^ zqTY!b!=6)=5>#N=>lal)NKHk!qrc`xMY2LknxwBzL+OfaHSv{xx_&hYE=75nJ_c}# zQh%xfI@7*o8W&ZGF=dG$yI=X@MEMeT4H2Y1c?}J@O&yu1{?u-SLI((j*0di*#)Fp1 zpQcn-YMLEW3DhtQt-0x*#$H#5Qd@4#C%H=jjIp*HEI?4sq`}cKF>r=fVyY4DLWIR& zqJXgpqk2%gYJi5JWxqb7+JZ#S!3;Bt^V(PS3>KV5NLP9!_p>TtDOB$7jA52jb)kFo zj15W>9VtH=Q_O~o@rRUrM+>Zm-DXu2w6-RJgshi##xF(eKSG9?UEOvu(KyTMa@ZvenEaCHs;k+l(zFCB|!u^p+%LscbdO zG>RznAxpMFsB9w@!!X~xf8F16?m6fF?s?90?m0Kp+3}R9&^{pmfGF1XI1T^^4?+Nf zpSO62Ke-Hm)NAZx1{<6#8>6r-)od zTt%pgsA5dpKU?*-{J9*Zv@+fzPD|eqzOklSl)k=Q+P50lyUOXUB^z9AHk%aCsoItU zTQl4Xd^%DS5!G2k<;itI#8?ZMqq=I?^|;xHQwIPGQrP6VF%p3Wo;2;?wX_m@Q>+ z4pfhweXZGmdje>DPw8Q>x8TE;YnwnbqFHKlHl|^w)<-N08OYvPrG^;Xi~+-T}XJMN3$wiboZ6h>$rvu1p+Lm0;2PbD@im*s^9!z*l$|^P=s#A`TVr$R*Y9s5bS2KA02e z{AH}8^{sAwLo%4>X{l_#O`%r2Tnxs^>%L6*;93@aA4B~!T5t4ANC{t}O(CCUPWs&Y zw0qZf6Pb<#ZQ^p<;gY_&pU)zCL zd2qBFL%LfR#SIA)rJ1cpFoOx_JQv_MQ7asa)Yi@2(cW4;4?&J%vr*X{e(Q8It{O8g z^|Wfib)~0S{NyWSnqtlE%9Wzrqe2*x)wF7va_*gBKNRu+nFecg>#i8!w~jO8N->_c zd4;}k>iW%JSAo+jJq$d@*aectvDC>32f?O2&DA(Pq#^JeU<(Ku?wq?GjM8{Y56Ta} z`VP3eFW@26qa*2fySzK(F~N`Nq5wk+_Y)7@6RMS|>Rh*O&lXKeF2#3;Af%;6cn(&R zo7O){_`STyFyn?Z;TW31&wlsO8ryF1vkuM+R)?Z?wJn?|!~$5Y$hppR5%M7nk6*0+ z>bkc05adwD`yjR$x%qBql=pOHyob0s#v6$*9s?OpeH| zxgaB8XEo5*09$-UzWIU7p5*6Gfu8!(vS!uJ&D560x%1*=Q`I%}w8v#^sXm{1-DknK zZf8NjnmnmWp-tF(umL<7`_`UmRkgmg*AuSu3OWKr;uIg%w3O9NoxB25nYU9DdtV_*kg9`_=UP!`QMF9YCHUD(7dy&W-I(c7Or*~a=im+{$8I2(ph1$cI2R*6EMUNWYvF=ZX zi$O*nscEbR=RZF1LHF%RZL(|X7%8`ZI((n|Gm|U8l&x8TlN>Q0zC_qBL(U`N%+A}7 z9KU7*LEozV`%k}LXw8GTu-m_Ai1>jh3NBzhP#d=J6zts-%*EPO2F#$_s(`!jy(givZime9NG*1*?#1bHSYCufqy=k0KLvp5=uC>h`6ybqcg{C3N%3( zwpmX6TV8aKtQ5b3@6HuXxn|mh7kD>QYU7zLwVs2|D*)gqTVWhb;Hfa z`}|y{|ET$OBL4Te?tecD3a4BaC1;W68uKYfvL0U;uM{S~SXTEPTJ4boYnBgYNvJn^ z)p&8|dzU$@UZh7$p2sFuF1Wx52zP%4Y>|<5%-g2OeMVu+-2i-UnnaeP`Z-D%Dc#Pl;}=R8j2H zlY%@r6E~`77n2rUINILmNCf&DN_#E<;e6}rWnjw=pB@w-?7N#+cg2@Vie7@pk%XT5jTIWJkx_A^zK&Y6t z0Z^9*x#2PZW}HTu0y&p}ZMP4&SC4wc;ivNo^%1`RL_DoIHEz$BuV9vBeiGMPoh~-wpS<5L@<|ytUH= z$<%HHX(}8dco5p!{$*|QmJ+qzG_1srht=w|9(Jnq(1uYn>VyQ~@b0X8Nm9y7k(ji= znjll*_>yaZbBQRH`$-sqV8_LJv8}E zAg=>l6sLV~jT4wXms=-`y!0QMvgh#Jr^R1)7b*nItr7oL@NekqaXjG-4z0iEut(O`@>LZ z>E5#VVJYB47aPObm2MRJh=ufmjI89zOU16obEN{LV!|4K(f-G?P`ao*`WWZG1hXt! z6gQFvycZZ6(_x&Co7LDCqwg4|glEapZN^;fr~~w|Y^r6jB_woj%-hC%sa51YZ~Aa3 zcz5`Ew#Qx>+n=wo%!-x++~O*r5_phxBS=SMNNK+QGG6?xOj7^U0g% z17{Qzp_5Ie74MD!>hOne_yLGSh@hqAeahXz`f4t9^2eFLUkb~rI))UANIJP`KH^V^ z8Mr7@H_-x6`eo&rx}2NBn>V)CR8>)emI3oWY2_fpmF}~tWK&ggfPBg?95yurrLk?8 zL3fe{joy$;d%SmK6+vV)-?*jsPwGp0dwzJ;4@~&`y&Q>j@`A-)TxaXa=KZIJp(-_E z@zBljS=Go-SZ2L@TJ$0C?<~E2^CYp#r3{?hyLG}-3WPx~3K&uoZE^O?kg|Z^nKZ|< zyv(e4NjIkIYBdbV)#cay5XclH`yFyb*e(Aya1Q$0i1&h(uQZmgO6GWm@Qt*6&ZI@T z0oGh<`B;Yib3;LMKEQlRY&sz5AqrsU7H%>oQ` zT$HoFZqR4qx4u_^;idkoOeMwv4D!s#oR~*ql!b=KkdslL~qk-Kb2syGSV1rNY~6^0{((PO6(+&Fw=1iTomQj#`?QaATgy z-QZn`v`4QxLL=khtO%w-pQ!J6BJ;K5#Nz$a`Zn1HP!38s{(ni7LgSUN0@|z26L;2q$?KT|#JSmvRpf zoN~=bYOr!WzQ2&+BbwzRx7alJlB4H>)3_pCCjwdvD~Q!YrInH*`nz}EodW}(1jqT} zXV{OVM@xS9-rp1=*cqYus34Fvj$je_n(n*DcJQ=gnou zixXK#J-y_#ANt8Kvg-5Mx%K zQVT&xAiPD)g}tYbREdq+k1(U0Dx1~}z+>@b-_+rpiK7eA7`Md1zptp`rvH44wUT zS@z+Lu2NVRK2~ba_5XOb6P~7{+~O`uNzx2Wk?fgLVkpE~b@jVinecLjY^of3h-Kkz zSl*H?IoZ3d6>6}&C!s}*{95I^syUA1cTYhpwk+T#mf=!4M!qu;8!`n7Ef8CXCZQ(C zNAm?4Dx_oh?cEsT%i&VOi$fi1RD7y%_G@XSe@|l7FNSB&U7V z#U&?CG3!+DbGw!Flme99kvks(-Xqr>n$_+(baZe@OWSAv=-`F5I(IFZ4^)E{&wR$u#s zVC|hgFS-98Hovvh(_~Se&Fmv0=HAV7+a^hO$oe1SVJevsa2P#5wVX8%DLl=+vQ5jremRRpM1t2e&V##>;fpmQ2$t9U!f)J6P z>r7>ktYexcJut11oVg<@YSUrg8uTTGB+HI{_z1&RBKjt|0ZW_dN!ZTc{MKbKqLv#! z9_F@ZGCC)XouW@rCT2Y+W!(=zPF7PP^Ps8`YUV$Y-b%*~`lnQlWQH=8x=tueaE4MTY!tiY}+uT#?JuEYe@MD{QZoa)J|$< z=hsea&UjzJ8TX3K|tx3P@vRmU%8tr~HS9Oa>ihA!nvu}$7*7QmixJYI8@koGj>C=WzC*F70NP`5|O1vgczj|LMkL?kiAf{ltPxs5|vQNjIBhn zL`3$T?E9FR`?>V_etvuYg6H}E&`ZX3U-voZI_F$xd7p{4G&ka6-@^_;5Z6iL<7XfU z4gQOUSa*H|?m1QrexQ8M7#TpXe~3*`HEryEzGqt0HJu1KErbaJ_J=8BVZfX}xpx)5ZnfAaXzbN&u< z&s$n$x{@X)v1u1QPZW%QI$pq)_J~jun!Feh!Ed$@lYAn}X@BjbHw0$?@FnG^4o7QT z8;cb0*Ju(}hOvuApZae5S+x2t9QIlH@*w{HcP)(r8Vd_~*$!o~8!cKR&n7=?JQI0{ z%#k4|(?lJDNG3IaLPcg6g7SBBf)CI9?}z`-2t+jz@iV6RLC+2gLC>^Qzs1(z1Sp3| zD9YhsMI9F8@O>oq$znWrsjfO?b5J$w(~x4YKW$?!6tRMuA(+%KeCY#M%JBGbhL;GV z8~u!%6A}oC9Z`5)lDHLLH-rn)U`!h=6++(j>X5eVYa(13dc7|ELp(7<1o;rOnfE&a z@q{;Tp|sh->mln;DEoaZ-XB`LJ;ldMh@Y=}G~mo4h$ARkiP#r40ZI)88Zxdd;2O&6 zi7a#rYxa}~cUEF7cawjJG_+O-)#7}@5WS#HDLiMK44m}d~IplfP z*n98KeGFO(dG!mKzSU}%y=kEwlaXP>2)MIE&Z|K>xr5!PiyZ9gd_s^YyI?W*Yu}*C zgX_`3swLse0(&k_Ren9RFW8oEYe7XnNh)YamEm`S7QZmmT^Q!*NOBKDQNCB2-14@X z9a0qXxpiM=?cDC#rw1z%E(^{!lDSv%zHJiQYKW2T49@9y`<7duA%_n$QjBOZHy4$9 zYD%;z)dWagMAcNx{!4G=#4UksxrZNaDxR{iJJUDx=-Kdy*j5UPvH4YHe<(5)g*0K1 zQ&QXc(!rKP*3L%qi-p)y9UL3<260cG(PFMI{+`9p9AET9M97z4fMw@Zj6hrr5Fp$ou#?LQZ`8DGO z7SzO!_cw7PGeWlpZyvCwIef5)@!0d+eWQdpx>V?hyo@R#uFWnfFg}OV%V^fSzqGlt zedA=um6AIdix;0$N^V39MsSktpgICn3ahGk+J{KVS=5dzYMkB}-4&3%eR4H1o%>tR zi{+E`WGdBKz%h7jO|F`DEwYhOxB9cA)q?y+Jz}q^@l`^wj&tkKRD@zW$+VKD3cpvtSu9Xh_l&f;?(uW$LcH ztU1`o{K{e@aVqU&gVn;2$>46BW51w5M&aFEem`ehiA$!jt@=p#$j?^&ip{OOjNHxN zt+?mnTg24hr}V|uPd5r(4<8@p`k*9Zs&1{0YwSB7aZ&1%{pYI$!NXdx2eb~1UEE$> z!~UGc$B#I}Re8ngZ$TYY`>9X6GMcFt#Fv{N8su^GCkOxORD!sgsH;y~GCG^JS+eST zX*0fM?u93(h-o7|(;d^_5^}hv?FXTdOXe?zjqJn~tRq4TKGpzEx+Z*YT~c<9bHf$6 z#9+gYp!TkyhU5L#V_9B%u4N4-ZJ(MAJCb%L?JjO}@vFdw#Jx&Cq|RJdC~m|t*cB&3 z|Ndw1jmwQHFS@Ze4tUGEt}|VfR~IohSFhfyj-Bcy4Sv9oON4_LUVsafwNl8rl5jBf zX=Pbi?w~b2+cfxRP(#9e-yK{x-F`KYANMV27xmQJu(*Kw3) zT&EuyI*&E226064sFK&dbZo~wWN67T^Z6hb97B2QH zlx+|B+>#cmI~zZB;GV_uy4?i(MV!KS$-_r``A+$T-aSUplzhZOfYrq~Gp|)mNxx>{ zk`s^)sB;MH%qE`I@e`x;AFq=Dzo;Vj??#igL6%*>C_8(oqnm1 ztLHiaE3(Mxx;RE+r$CAg?s_8{Z3Oi2HQp|wJ=JsA(U{z6a$0%o(?_qM^h=+;K9YIq zT8#iYD zJ5*Q~IaPYlFZ7Mx(Ho)j5t0iW(@jb@IXcecdpu{}hurJGPTt^cjgFdRw?8O^zv%Cy z<=<~~iu=?akN2safc{)P+qH_1de3Ev9YJ=>*lEURYe##%?aj}2S{(gVl*(Ja^wsQH zYsXU}Xy4FF7MV)t%OXyANP03a$0ewXs0(UgjWr2c{Rc8@5~W81U_o|_C9lIzE{FNV zK>g1hUK~U>%aYYRS>msm-`{T~&a;T!rM7d}{k3>dC^EaCTNOP0gZkMo@HxR1oE9Ny zuRD8gF}@q~9sZ8_I}z7InluV?!P-j+;Z^((Y55oX2`~bIxaCh0^ZNLbX}@NUZd9D` z4)w6ebhj#t@Hl3<8vY&QOmS1n{B)onv+Dy3tHooCg>PCtSVXNl(5Z7t z;ksjZ^itr$m`LbtN7n=5jTPvt@RnQqv|Y#_=-#ARmyAVZo)JkM2G_L;E0ExPw zKrdgcup;UYnf0fajuE$w%I>Vk|A>%W3%?DMHz2j-o@|6Cut%_ILW$8{6;=(Y}huYpu~O4>0cLs9&< zcM~1AEgUylrjeQ1xYfw?Rtx=kW5m?2K)WS?R(b1ysPN3YkWSu?el}GeO*r^OerZUt z9SX))`m2*n>k8l1xK~KiUoy(6N&>)}xD97)+?7$XC0w1<(c&QHAo=ZYLgIs$eO5`o z_V4Xi>wkYxsIC9+9IGr)vxGp>qG*i&B}3iGArC+kdr5Otw|jk4k4bONU>Dg7oPt`e z!X5oz^C@q~I=tqBbC83;LFlT9d1ij*UyQ_j3=5gIL+NH>fT(JeG)9v4yg`>=GN18! zo-q(k)c@Nx(k{SwvKr}BqSqliy>W8EFXI^1Lcm9hV2A4G?N3>4qgWc{f8rO~fcB4| zYR~fg;Nl!ISTwlr|KP-pX{|La@UK;n(Se@b8sk8!CNIx1I#>2jlQ+T^eBb)=?uCQb z4ErBmRpRlW{9yfkUh>wx^6Sj(fHNM!T_Pfj9`1|B@4Z9A+JRM!Jyl1H1R09ncH3#x z4OLn$|6DlHh>C0(JzKnBdrxQi*X$Fn$95>3^udq(3hSt=aD;4(76pNW0k5jDC^&?xEKVEvGzQg_g^DnFFa9$ei@O>a%^VO8Rj* zx(VgUTqO2*9W{^oeI75I)JK}MulLt&4DyWFIuhn4Mt<*f>K)}BXtSRN+cG0j1Wj_WZ!?H7Do84 zRRok2e0JS8px zLFdHhg1#I^!DJ4@cE+tiu#4=vt($P9D4iIQtuHA0k=#3Q1&gidJ?bWra01=VRE|@> z&+<%6h!QZARF*<5ykkbUYAv`nyIs*W*r)F_Ox$?B#)lQWbJX6UNFp%5k6Q!Vrk~jj zkD>i3;UTDJD2HRbYDIC>z&@9^)WRmKx!XP@dbr52vIdQ;GcT0_opRClgoJu_0~AES?+;|b7d)Ws`>-4!Q@6D|+y z=~8^PMh|aB+7l3W!gswv#Tty_2tu*e^=XL<17-bQ({f1Jo1_hK-!- z`BK}Y;Hj`g+Ii}r!$ID{+~=K+{O&U)d&=t=7X}f&VtVm(tDA(u;l&ypz3l}0Dry3y z&m*+HV}i+LwTapz-?%s+*hbYsl~*krp;;)YoFy7sA|XF4f``6#Is=8yLd5!0i*J3MlMI}ZcfNIA&zDv9rpr4|+h&1};S7>@JZ zYnb`{^$MVK+P>{PR_G~98>_8`5M^YM8s*=Ad`$~hU#s|qoL{SeaRm-t-Y*&0+U*gY zD;7Nael;chwNF@{%)>S7;-|w|?3sipZx@@Q{2QESyqXdB0%HE0c@5uj-hX%JLVvNi z<#+fGJhI*?pmY_geJ6~y*|qb;+o`j}hnP>U98BSY+c??C0V?(!2q0G-t!8Q4b=r8byQrPW9NCcB(Mw&VV z4IhGxSYR6_2NvFvc!#z4Vxm>IgwEhpTKc*P@VpY88L4|CHc(9;YvIRFCQwd%k{m+X z{EE7x(hh7O&nFoU8LI1UTG_0~zaq19t;xp;^6BD#r|RM_%!sSgoJosS@&5ZMyfu({ zd>)cd%^N4rm^2p}(5;Ayb*n{Q`fG;t=-*kRs3xrdd?~4oeFiZZ?qoF)Crrc6EU$e3`Nyzf6BCclDhHl34CGlO(|Ba%^o4jw?*f88?N0m zC5>H!$%x2W{NT*%th3|vvH&vi9D)t_3HwZy`WY$=b_5=4L4Svrj~z`j!+(X9hgG)1 z1!0W$adpzqp(o-?s}k4gb}L_#5k)1Hl5>|7%gU+5U4x6??FOQx4ez)-1LXEBll~I& zJ<&I?r444wP;0OzDi4CSxzZ;Ry9R#*6=ZtMdCd&|+!}TliUJL!WP4cRy zm)}x6xB{8_>ki!`KwrPS(;2yt0X$rU;_)k4*G{*jQtf7OMfB~L)diHreuulCIDA%Z z$V)etNjFs$GFV)@cAY@Y<<&hNKK5C%=t$g^sP$Tdu;n24@bxdVQyx zF`OoLnmDq_OE&UwmdLb<<$`UuAxtf(8)+-1cX|S|YV2}Ul6gfok+mk;G2E{tt`MUTIdi`+KjUjbFaNU6;BX0V=wA1g$S|s=%HJ!A| zRVhDzA??)yl`-?msOhOpl=K&BbR^EE|E%T-?54~e5>E1J8tD)0%A~@=IpptuWI=l~ ziMsuvwUU-XO(`bE(Rnzcx}M9w7kJ3hh+cLgd7?XBwVjt%xC5n;_(D;lY^~!_<9_z@ zr>-;V6LE_2?sQZ7`_APWue{xCBQg)M_kOBNdZ3?LH?*_b0zG)Rczoc^*5#QJ=Eo|C zmHCBP9Cxr+zj921q`82#){#0=iyYyObfeO}6K%saP+UmfqH2qT)yVzB(yv^qWoaOqig{}y zYJy28c$ztN`1fF$!u2h$qJpIwHBkZ5uCsEKS@x?y7Rt%*(`yr5$o&)XVvN&=edZIj z(-u!y_Anjim~vzKEk|(P^EW9BC5qu3BH1+EVXUhneeVW4X{Q5RUp&?#(iU5N4-%t% zW4hkO_sLNrYL=lZ?-$S~@@hQLaljt&%8q&g+sR1N=H2x|=7-6KpIb7#Hz$j=VrHbG z#&?qRIqd|E-!E$dq!ltSSWomL7Mr61w`xQQP-N{RE1UVJRE`6XJ0oYDc#V-S)A853 zSyts~(H7rFBwp{_V}Ya3j{f=hTUW$B*beWv=b0CJ_j!$P(7mq5-9q*voI{p2FWF7) z50D1NiTk&$+{T)TUJTmkVA3r^9+zD&ZV5-$jQ%8ag$4pG1rAS?$@Hw#1@{@XFDc09 zcY|%T07TVs-QbyzeZLKvo?XedD9H4LxkpZNHG~>>Z~Z#D>h&V&2{^n^`Duq{qSXog z?XHgLfuHfo{9u26aAOsnGXF{FW7<^Be1fs~&E$X42|5sh`X28xRozTXibzJj2S=O6 zO57!BEQ~x1S zj7{Zb%~h0>pgPUo#+yV${FIc2uSBreV>t=ty0Vd7M3WVx83}I2O0UF-)acBYna_)% zlH(ur1Tw#;uy}Yfae1QerAYkc#;A*=-+!=kp5yb6C*s+Uc9lM%SKrJl5)G}4ib^A? zJji?~{lej*2YLd6Q@Jd@cx(-7kcP7}l#%FR>vBfEO!;;62{{x{0&6kxQZ*rpuK%8OVf+lTs){77x@{rt7W!AW zEY9)z@DYp*V$Dc1Qk-ErUQx|lk^v-ZG0guwQvQ`J<;X}wmD1!{4gL5sZQJe`-`Zcs zHg!AXo}jpRsh|*r(;v;fLG;)vIcMHX%&q)&#Kf;S@G-TVX1yOgbuHRXD{1bxuT!yB z{i_pAX86BoCujv6ElHl>LYu|3i6hsxO8%aYQ)>UYO!QsPFd{}@lk&K|5UEGfL=}YI z<>675)aN5$G69LeXlqbH%&klqbvT_AM3*SOki*#8toTH;o-c$vwp!DOQ86RyNuKC3 z7UML?mvomev-e~g)U`W}BwPc%j?Eh=XT+-@No`H;BFMGk%cFxW%SdEN3cmr5pxCUI z!}*EGqj*u~J~@0>ds#@+O6CWY40e&d9=go}SE{Dpc|K0mAU$02s-|^2__qWi(M^}= z&m-TnMP&~SK`m~XH7l9Z$_W(cH5TKoqPuXUnfT%$7YjaZ6anHeh#V*WMS7MUFO>Yj z=HUhdQ%dMkiuc$0a2;}ZD;^cXwu1H`lYiGRYC9BV&tdT~gb~jL#W3QRKMEm=8&(h~ zw(VmNle`u+u#y>;JygC!+Yvw;6I>~fezT4)AxtS>Qp>|df6P9N?Gttp( z3YkK;umFmbCzYAQh4HqGK1fmp`HcJw*usuFW-YVkWked)1PCe!<9nI>=Y~;%A*jFc zd3{l+dK5_*e}v&R>NtzIwu)@y?h~U6j%^Lz549`7G<^cgSL0CNk~nk;`b7Hoj5lJ0 z$$Ts}gSZyIn?}?bvNLh3*D}uw=IgODMkTc3nF{NR{-~2?|E;#`gEX6w2{uv)18afo zs+Su%TQjZ|e(Mu{OGwfaT?B;-%808Aa}q3c+fQucG*R<&Nd1zRFAdSb3O3+H59%Y^ zU&#zdB5qd$Sw4;j6e0HnNJ=iCU%dq^Gh<5S(_ORa5+cz3RU&PZm?sn!_Jv%vL8hy6 zThanYv>%GI8efz=j2~cb`U>3)xr%~&_$Btd70u=k;?|3GCfw@AD>z%m3S;stIE*nHy>0&^ z9J{&U_pN~8)c>r%{9!y=vln?|M2Vo{?$Q@t0Tyrmsh(LtH>i+WLZ<(nqe%LB7?XMP zoVhJxNhGUuTd0m>JM{9tgG2ZnGl(;1Qi z4s9Q%l#7#~rCWRiCOJbUO$VVxHt#`5^57Aj01HuhbyE0OYLZ~Y7f6%kDyKT|YS;a3 zADEMVLKMzSBIG^!O=>zi8?dk_Bn&^ssH z@Zwz{y&<+kK<^J8f~UA4fAmmU2uc}uCj*m!>NzSohgv>dsyTRdhof#qj5<4}6i&BH zl&9RrbYdWrOMr@E>nb!gXXl~we(4@xpkhA*8JNJW%OOPJ_BSv~hx&vqWnXtx96|-J zFG=-BU&dfcX*Rf}#cM$bBdiT>nxst2DEJOtpg^}NeAkwldVY`;eV#ySit3~TQFdB^ z5-jh+@H#Ca^p^$_U{4$UfEy3?kaiu^g2YjF=LnDs?`L1a0m!rD3EYYX^d+B4x6kGy z=%AgksCu@=2^}aE%FtCOy<<&-n;~1@p^|D%xJ_I#1D?br=u+6vZw7^P3sKJLCPi@J zqfGWf$P|+xNBIT?gPz&r zN)t!fH^LMuTQxJI9;AMTprF#ojUGP>1@0z=;eA6;ry9<>Jw^2}X$zA&tPdBRJ8$62 zG&Kg68vXg`w!^s&t8+X$zq-1GER2DB1UU(c=_a1AW$g#lsyOPJINFj*WlELCbFhNS znUpa8588usNUP;!TQo}ut=fPEtWQ2!yUV>1T9(FNg^CYk`VHC*akwUstnvfhV({CmC!CV{%*oGD4Uhnj5aq-14VipBPSKZ;F1tF55Jg5e8XUkr z?dw3Vu4uU6Q~s@4H>qrcAHh9!Kwz4_1oO~&W{f(UMV1Go4y?)~_vNm0Zr9>bNpsQ^g> zCjm-al<6IW{IOG^JAYD#8zq=aD~_%Tfj$2I=Y?*V1aWlf242A@salu0{28d^$-Tb5 zJ02|qZ<^iR4Z)Ri|9I%d5MUAk`aHIRwdG z(tu=LyMch}EsY<>3nNRBgVZ3g%*~Cj(IZcJ1cWF@|Lr=)_C61_D3w{WSZJ@+aA>dc zxkD{|lA0Jv76nepXG~(CMkBaKL!ETe1|4AF1o=ifj(^HQO2U~|99m>5t1kfQh}E5O2(&KW@9pQKs>@lZn|~Wo)6?~)Q$B6 zq%qX_s#>*!&fr{2ncm(7b*idi>krps+zo695X%l*yOPgbgg33Lu|szO3)!1wiA`2eqyVKn z8Rf`(xt*1$#RmiqP%^(S6}0!hz?pDV{x5Zs`+ql|bAg6+LUgvwL~%Rn;R=oWp)Ita z5<6fKfV}kM$1sbNICjv&Voxu?UZ{Py+$^HmYCW1tHYMehVW+DhUsvfu;n!3 z$N+H%`#+N_M@8|%ZHk7N#c7ueC9n5)YM^93VD$H9WQ9Rk%|+3K2JcG4mJLo&Hwqkx zeEUIobE3~HDWj=Ft$OneCi7P8+l`t?oWo!pB*6RcNyBD2mGr0Fmd(&PcM*7VC8Gr@ zQr}OC{%5{ToD^OBmSzj2zaO^g4|r?r^N-5^_ycJ;0i+bPkrc=Lx9X%1|Lm?)h-8e( ze0BidJbPEDXU8ShQ8I!U9J$59l+W8(5NAlHe^#ul5^-O0XqBU z;M<~I;V7Ejx@MFEY{{*Z*j-X(nWODP1C}nU0kf8%=>V!gUyj`myRJ&WsX!+Drqa!d z`!7Kz-<_chWF)1@PQ@_`wRj}caOX9rt5|9|C1=PYr01wZu%+x%l+2po`SRL-hW~OT zpfep7#AG%YYd}|~QyhcDxCkqnQCy>(1#Vkc3+n3KJOQ=9lap22Gs!q$`+GVF>t9fcrVSbncqSPVsfl;=Rd9 zOlDW?4I8@);>gjEK%Ob(_OI;Npq*B+UNzIOO{R_2J$7?8Hq z`BvQ7XQ=mINp%=fBm^oe;AZY9MY&2m<-||BVF*}QDe!$%G={Pf`W(c+@1o{~Ef0`N zQ9^of4C)jM+=DWeYgTzEf}cVkVhLGJ%zS|I;6{gkI4|G56RUU&@cuaEq81uQl}JY) zfK!8+jQ%rBC8^HDnH#OL_djvVCnM6|{RCmW4f0j+s4r#} z=#36xOGf$gcj%r7eo(YW9FvTyKU^xoWUIGk{A9kK7lv(ui!%Hx1DP7r(W9(w_x}ZF z?-Nn=E;SvZHW;1>3g9(I$LBkUpe6ddDTZ_`7Uj+4dP1Efws>z(I;C6* zCo+M2OKDRX(AP-F1AQL_uEL$ztqzmfpU;U8crrl&3lBmLtZyFgZ1%%7Pg(>HBat)$Q7u!us0iO5VZ-kOJ~t{B0#3`eb!D7JD)&(#~>XuQuyGxDH!hI zYJK(XGPtn{x=atSTu)~K;hx5H^yQrpb}E=R)r|C$H`5GpA)u9u%;|Bp;NHD%bDqug ztuxd_c7`-Dz!-xHA8ECOj0z3aP`dgJsbX5QbLUF!9h$hM$hIC*>xRC|YAe}(=lb+W=x4-OaUOqL3 z0fpJQ{Uib9roMS0($^YuP|M2#4Lb%3@5`iMMiPeXB|zGu`z~UF0@jH!%}BtDwrzZX zk+DWc^iwP}f&sR(iXtuQu){m)$CE>z+#W0;9-KU%@V|vfc_{PULX=0B=}jEdY@|3w zg*>GN%2bC+EINs3A<7T`8&@!(jg!+kXm04A=RLSUCyb_OCMG zI}rlZ0O1V<$0Xn$4o-rEE?Mqo$Y04eOF>sq0*L(!vQHt(rOWi5W70br;ZNiVkPKLL z;uF4{t@N;WJF|&P$gjJHzyC|&?sYp~nIxV3V$33N8ToDo1&RBz8Iyply(Pgyq>>hNQGerEHDWq9?Y0y->9jVqP(i z%Klp7xRtR?dZ@tA^U0|U>e5BJ29Y;xrJVS+BoX`>;&4(l>J-oszSg(xs+N0Tg}_f2 zCC3B6!`ECxquTqBlTy14xlDzt^XEBmltz5`w~9lncm2Pq+Np~30SmWB?1f35~46{3NB1UcR){7 z6P9o1bL2QrD)Sswc)3dKfJls1d%)W02hBgs8gScNLyYCk5N(d*JOLhh$Yl&3aRE6m zed(si96EPDzMZ)Po!7;DhuWSc&YG28I!P`bH#{8g!D71j|?5qMt-CcX&dKpK~l~@5a+ggy@mo2t0PYx8P8Cvli=l8jF z`8{_Dv2h!Bl+j0*=sK+rl^R^$BAS6~d-$YQ6&vt3pxBgf`pD!(NtN4WW9_x__d_#A z=h}`x;H75#p2fXaH)%#Pk)%IvWbHqNE|55Vfwtr*AMu~F3Dr^&`6{>fAiX42$p{D+U)82z}L#WB4(R(i4n*4TY%ke&OWt_YQU@gCQikrTr zUVJSn-}l0>6-dA^SKfh1_d{AQTnX z|3h=yA~LCywwC^g_A=cEtr{$lrsmVhTK%flzL2QcsDy6|gAZCVmcNxSCM@o*YP}+> z!;3Qp^hprlOIWm)17%rml%wo93Y1FZC~h5!QL&S)5+NCYxT@WY_3GdOv zN4txwm$6w6fHG=Q=2}95LBk97)6es5%h+si>z1cYnS300Z&U`%`M#l9Pb|El2|9S} z2nIad`H( zDch8;KxWeigg9_{lu?E77>l7kme3=EMX83ki_Me36 zL+RRur3-f#p3rSK^7?5fL3bpwHYR)=0SOv+Y;Mt{*PtAp%_|M$NLvTBy_nqiC>)`n zjZ`QiLHmi#MWlDwwdTK>f)u1UL+4FuO*ueQ0CcO~CfC$*;>W5&R`$`0jno3oGX)RykycD$ z^10Kq@~%w0rtxc+u|cID1^aNrQx@&CZ!TnI!~!@VZ(UyztUAoouyg#!K&!~&9h-mY z$8GKhl9$?f({L?zxLjm_cJkd|)mCCM@_`zg!>Bc7g;PQAX~=(K{t(x7tx!;l|7Z)^ zzZY&Wy-BqpFNePEw7|gYJU(Ihl&R>~ zhIOmH!#S~|%6rdS=w;E)CHD?XsMyC$wEp^CLVjMkcl>mZ&5=VrHJ^evv60f0}&{sP!jVf^K6LSCTHN6Fy$ zgb+Z~!U;ziHUNn0nU$~H$mTLJWx_%ODtQtmxa&JR##=@=whsd^rU2<+78WRS6x{HW zwdXE72~l2IUfTcW&UD-%;^T~8wDw1aRErgtH#^;C->p3lB>R~1OV3D0IYDm{6l{^E zGvfux%C?m|7zbj-R(7cYKp70nGWh~s#e!DxqowF`@eMzYF&dMQOlJ?1>LI1hIBYO$O>N8i^|fzr-B*nK12P$r zp#6(V@ArgxzQHH<94%1jN&;;#6D5{fzjWo9L`iNzw?z>~QtVd`hRfRzbPBdg|=^j!sRf~Yd94l z%D$z$gPJ_&hi%jpxZo4(sDIA2#&U%85a2bom9Vkz$?q9{b2L^pthVmI z4oT7Smg|Ax2Q1#|k5jcCpZ5BkzCr(Vb})x=d;S2>mv7&o$HSj7LsqD-pnRa0zFk)b zh0lEbCqJuURKaHlEbIFi79L+iJNn825Rs6nAN_~1&B%Bd>X~>eJ*vBY3b;=Ep=4eB z`#khHu@O}L3-lTpfI$q0_<5F^dVaBLV0%Q_n{@F>(O{nw8PvX48J*OVGir1IU`)g1 zBO0JE5ZZmTel~j)RUqrm^n@k9gB@#mNI*O@rU8y}Z_r$ee~x4_wuY=PJl(PMjXk7p zNK}lIaMb_MDi?gOK*1Azdl_0s)ic_&8EJx_pHL^m9LJr5=MOkC>@)(ezN0w;1YPLj zwJ86jo0!_q;+ef^BdBLwvbSSr^KmU1z5voC;K0XQk`%|%QwvC4`!$McIaccry&=}; zeg2|@ySOHJlJ2=4OH~7nAs_!M$Ez;Abs{M?=}A^gWi3Khqvx@e8;pws{6{^aCoT*| z&mh}B3e(N#XIH+i2(3AS1Y_6I4j}8Gc!E~w`U*sJ|2TeH9n1&A)uBA7`i$fDBN)dnJ~lVBLM!VELM^hm6Vv2oOGcZ zUJf8B9tt2Odwqk02N>pCfg2KFN}%G-%)>K+QS4H8i%0wYiWaK5;719orP>)whQAu5?e4lvcNY}(g@yu)IPrF}m0Y6h%>YsSiOomhD+qer9 zK_P&zPaoUSX>C_0+~w#$lEv5oL1L>Sdg~x3+3s1CVtcW8<|T^*P64ENCRdg&o{H-; z4tXUvwbrcldpfnsf}Xx4zaqb7T_f+b3u=_y{IHur+x_hySaJeLF^+vicb4M$>UW@I zaYikQBc^lx&BK!OkS$A2HTf6gBt7XsI8~{{5&>{GZTYJ7m;U%|aDWiM_cA2H(F}L! zQgkJ~Sc)A3LTMay+!V^Ta(oBu zSS9Ej&z>?Tsj>^y2F~$}cR2=F0 zHHi`t5yFW-{j8cr7OQvO)EEH(fh`w(oBn3=?Xq6|Ce)SC<-LvMN7=$#$ukmy0{KV- zkhg?`9dF5p#+z8nD`_k}y7=%6F)Y2zmE{e;_C{MR4mUB_x4wT(?H8jd`O;WnX{P~Q z4c5D8I9k_f?S5&^w+xOjo2^0Q~w`VL16D4j^3t zh~{!tuarYLZ{exJGw)Cvq#x%f&MZZ<1wD!fW&R5*8bfn;x(6;v7;PPR7&K0Mh2~Qj_~)*0W#SXWlo% zMPi-3>}5Izbj`(?*bRV!%8AtWoQf+VZ$CSUyyhULZCtw`xr4&~K(#v)5Mii0Czbxt zTb}@>kh&eiQYPZ0L(2FQRPVtCjzRsu*>4^(cpF08w8Ox$QH3JI9O7@&TOWs$Z_$9C z_$jeg0`Of1i;5nL=m#Lk(rlXrEZ{kg4YD6R8!`~rc2%9?*Zl0@U!AHuf%?ZdkkZvw z@#TN0#pM)Vfwq=9DYmwG{|?@K=Dmp~)=~y*`CDEDi~{t(!tdes(=nK> zAl7%E632zE&NjIW4kvBg?WlG1^L8CBNvnRy@R-ZUaUAPV)2-X1yEViKpzmC2O#u4t z+y;-dOSXUFPp}ySh-_XBk%YEXE>|U<-lH251lTARj5iDq8Y3?!v%`rzi1}ACaTowL zlQq+i@wOIYEOfLj)JYumrtfMvDq7)la{)T8&Pqd?ZJd!SaS6xe2iYsRbT?$)g@gfs z@at7D8Wq2Co7le6UW;4U;#8seSrJ<`wOw}R4&2LXnzb%jdGcT12DrH6Z}=0ObBgf; zypQUQT_17P5101gpJ8z};1z8wA4WTF}^Fqd4&`0tcNtNPBA1jkp?@*0jKm&7H%!yXJYD8m8X{3G{smqQe`)l0y=dTW%SXMBj~=W>p7eSYY_|!h z#Z&W?frc>8IAVn;p)3VBciLDbN+)B+Ir^%_9<8 z%$q_Bs4(hQKS_MLDxfFPAKN)U*t;^VN;9TeZ|8Um+82XX;!mMm;G{;(Nm91{FGcPH`^Ej?( z!?R3j+9D|Z^}HZFP}O&~i24%UcfXZPU0hC^&kIL_JJe_cTK-q@Vg%^@=&g+5+BQPL@GcDk{0**8;OdFMJ7oz7 zlwWYqpJggPSRU=;gt;B6uoZH_Aff-$f^n#43PB{C!0EddcfG$%VhTq~5)Az_7$pBK z$a;yR-C{P#eJOs5(e?Ck#uq6PAZ> zbhyJU`(NDE%1j`5_Vc9j^`zrZYaji}sTsU8hs*z6=(~t=s9xD+&~h~Jb9nk1*`{v9 zAXX0ph>_8Qb-Oq4zB*ysU@7vrqjA@w2^kma}op68eN`#mcy<$4= z{rhTJ!23p2aK`+smqZ6WU6$->N`6JGosS*N!;oWzgY#ZoSBHe^bEWFWb85;?q^|Zz z9ej1BgzM&Wg0n^2p)dzP+Y9gTTA`0l*V3~#9pAC;Os?9`@}HdNKNgd59M>JRoygH| zVH*6&{`T~Zev1w-!9R;SA**$&J0r`2@tlIGn3M6Qr=9CL??u~Q$BYIOlG_&8pX`_M zQV%RO?ofWBDz(pFyn%c=CnK{o<4JHVy+da8VzI>yM}_L>;1`=x`>I*3ui;k{=VM>b zZ;M?U)!HQq!z3|pm2ckP+|>8)QZ)}UZ*#{;ZNQ0!2jEy|whv0XzhovX%LSG;nq{#j zE=a`?-$kDqs9{nDUMG+g8M~iugjLwSlUo9>ABCv zZ{AyO>Ylq^TRq$_A9a-=rEo*Ou>}kpD?eg96`lN&Y5d6ZVNR7u1Nqz-F0bv5q3TAA z!IE!#>#aeg_w!B1&G*+Ab=tpp2~i*+=x?<9sR+~45$;`a=8~s`M@M>E@b@=EYMr%S zm1enf8p>oeW^Zck>#%4hh6Cm|V(gd9R{7Q^dotu|2Y=JL0%xm-wIu7jc2N{|2J5@i zIJm#z=A2=9}61&@|qRMIH-9QFJT0Z+SOd z8|@YFsc~0$hClr@B&$ZYyrxTQ z33umkzjpGppOaDz;d&YW`D$k4_@UzwNcVo1ktWgSwHJuE<$?3DpN;^6HNY6xnOc9?rhavYfk^z3CP+ z(tTk}qDT-alw#!FUM&0>>3DVr@eIC2B4Ta0sXH?EO4zJxq{Z!rme20XGeHX_2uqfr$!MgCOLn6$5Jhp02g!1>on(F9 zPO=;i=>cgh3!!g)UX}G`-LXN`)#W1#xO~0;EX#7ce=ZpL{`l2yLL8{#TsB}^pjxKg zghvp{vKQpCu4_~sg!XL#!KPb~s0i1yPat61+5m!0KF1Be-9Inux+ed&e}cVTby377 zUxW;fgki^TB4B$F+cF!tRp8IC{71ttAVe6O%!XIizhKyLi3r%7*;cb5d)Xg`Rem%2 zzIp_(@oj8J!5a)at_cB~QQMjt9M<{Cu+{|~7pEI0Y_uCVSm92?jx9jI25wtl!=l2z z<^SB&8jwmMbe$-K#UU^(jJj=MU2gYJ^*%J%fMX>Sz{a;z1zWPsiaSZBl@c2kMhsi! zC8roRsud+mmj*_-GhxNnadOOxO`uOO8Wx5eTX$)gu#qqDtX8MMIF8sP*hpGMh)wta zDP&lfZfs1wxO=gDs4~UL0b@NaZoUM(mX7N&?ztTdI_)W@0&z+|pHlh{;x zaR!_EHTafz@b?(`Ukh2UW9p;WV={@y5<3<_8<38?K#oZ+HNfP9P$`wM?3xX)0w!O< z+x=4u8_v%T$ta&C=3{gWurHMzw04)MxSJBN4cw|Q(1wMvG6vX}`X1SE(t&U;KxmsG ztHPKuEDY=zU|*WLVB2Xuf@FI-Y%^+A7?XyD!5IVWOKYENzHo+;Y){5E2UdkKZ&;Yf zHhfMUy}xH@3RAK@;LRJ1E5jBGR_*EQSe=8vfW6q+vFa=y4713oyT|wcyn-Ovi&z!L zs$r%%jr8@QA23xUdqJzhSTf89r@>x6Iz>S24tpQ8#)EE{Gfw0En_vJWXpscb zFt40QdiK?8b-V`AFtm)DL3np0*+f!=fe)t8-i$gJ8eooTjfa*u%LpX*9BAJb$DWlGTxN#7^x&)soD~?M5IGpveAU6~};8Br|-=ELvpv zNj$p9F=lzmj6L=NHe%$29uDRhwy2gS$Bb;Ji2JYE{0IDw`EpbBvi~UU++I8g`V?7 zWm0}qdQH62B7AN8LbL}$eDO9yI9_c_!k%E}uQR>CkHpikM`T_YJ-CEX!+hukZdI69 zH%!2)D1%*m$S~7-8L}$OD;g$mRg{sA-fx&iy^LBF=2Z++w<=0^ckeXJkX}%n#^c;D zWLk0)N%8gCIr)31l{dqZ$0}HC9j$6UhGA~`QnB~jT8_MvtceH1n$7^xY-?>yn_*C! zx(w)I*EXw$kz7}S*w)mB2E!1xZDG*DmTi^{V;!x~wXJ^DwT9{HCD#4%Z9_LqWeiZo zw#qeD8K$C_dN&6-W=8=vOr4fWYPv`nm}Eyo8w1>S$WXlp0f&8K!dal))z4 z9ujOx$r8W@SED{I5Vc>iJsh@CjwPav;w%8YXBjKY5q4}?Uw1&LOENgWZ&BG6-<00E zM9dq3lR?0?Wu(YYhBYk+XZtJT!?q{GDigD!7`wJT49kB< z_!3w$2-vpNAh;GkinBdTv1QwzVaX3Ej#g*|0o#@{BG=^KaM~>#eA_PTx`zL&-d2RU vH(S(8u_vs_hogT`N00000NkvXXu0mjfXoLD% literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/qidenticon_two.png b/src/tests/mock/images/kivy/qidenticon_two.png new file mode 100644 index 0000000000000000000000000000000000000000..351806593fabc7add7f1f23038216bf4dc788d2c GIT binary patch literal 1737 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 Q>Hq)$07*qoM6N<$f^(E5=l}o! literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/qidenticon_x.png b/src/tests/mock/images/kivy/qidenticon_x.png new file mode 100644 index 0000000000000000000000000000000000000000..07e903e5837b35e6a8e3e8322c2b41171e9d4fcc GIT binary patch literal 1763 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 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/redicon.png b/src/tests/mock/images/kivy/redicon.png new file mode 100644 index 0000000000000000000000000000000000000000..dfc84b47b432a75412cc28e0db861a56b4bd3a4c GIT binary patch literal 716 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 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/search_mail.png b/src/tests/mock/images/kivy/search_mail.png new file mode 100644 index 0000000000000000000000000000000000000000..7b38e9b40e3f57aeb8d27ac00f77cb1a3cc151c6 GIT binary patch literal 10555 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 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/send.png b/src/tests/mock/images/kivy/send.png new file mode 100644 index 0000000000000000000000000000000000000000..6a7c830262527cd3781ca4d36ffd0ca42c8bc37a GIT binary patch literal 823 zcmV-71IYY|P)=iKte_mrAtZZgJ2>NJ(Tv=L+NXQZ${BWRM7TG_9R4sZ#@Ky2%2D7wispUBD>DG z>iV&Z-{U&Fv(D|zbv3OnbGdisob$iGbM6_#t@d^p3X!?1~4s8-J3IcTX$eaR- zL?p6?nb|0&W>z7~GVV4sw35Awyo>aZO@cbYaU}5}2tvi=VhGE!isGDu$goc};cWoT>0jt8gB+ z@KbchA#np)AA`UAsI90Z8>7mph?Bs{?rsu@$GLzw9);0pz}RG*6VQW_!qc2Ye_vF` zabRBx-^T|A(CBtw)575)BcX7d!WP#d)HRQYOj>OB47L8zoyHm&^AeK8GH5hR#4ym;hbWvhR=a^z(A=os5fc_22xAd=lz~x_vNec8S&)=D3hz)s0Nqro zA1EyLY@+(6sF{)?fbT10rjJ?;q^cQ6+G`_I+4XQTQ*OFNA`JJg1kyxQ5SH4g!2K-3 zu2hiA<&a1u!hWPuDd=LUQxB+FP1o2ZVt2WWG#z8TDw^xkSF6F@BalwQd3k!Jo2r_6 z;N#sSAM%Mb4;u#TemEx-U2EE;j%>(W#J0000}oCdCr+3C6h_IUaurc(lZf#r2of{^ZDF69*>mCWJt!2N~NOH>10bJ60ai3Kn$^W zA6WN#Jt~z-FE>yR9{@ayB$Pk3S}mGRr=(V^$zU+hcswSZPDi`lj@)iHt=DTxr_-e!rKv2MWOF z^WBvLfdJ1KaOn5@*@;%GrCP1V(8J;I7XT6fxm=FzdA(jrrBY0pbuEPTrTDRf(P_H8jb!GjwTEMNm0jrBd|6ajjV=14gkbv zvuTNbd=p<+EU4G(KMQ*{dN73YNc1hQykOXW65|8<@xb}(P5C!31mKSV0|4jadTubg R^S1y1002ovPDHLkV1nu28eaea literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/!.png b/src/tests/mock/images/kivy/text_images/!.png new file mode 100644 index 0000000000000000000000000000000000000000..bac2f2461db6556140398a6cd73595b7e30d603a GIT binary patch literal 5035 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 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/0.png b/src/tests/mock/images/kivy/text_images/0.png new file mode 100644 index 0000000000000000000000000000000000000000..2b8b63e3a79f5359fe81085211f5bd2cb84aa784 GIT binary patch literal 7321 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 SCbXY#0Ha%`H>-6WBmWD_4en|H literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/2.png b/src/tests/mock/images/kivy/text_images/2.png new file mode 100644 index 0000000000000000000000000000000000000000..0cf202e95b89b345d8363939a8ba195b05cfb542 GIT binary patch literal 6916 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 KMNUMnLSTX>U6tto literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/3.png b/src/tests/mock/images/kivy/text_images/3.png new file mode 100644 index 0000000000000000000000000000000000000000..f9d612dd8b00cd754006110d0365087fdb3b32a5 GIT binary patch literal 7265 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ñU+Fza+h~R5vpg8_LIVMa5TU~B_MS$~w*1qN_?($zvY%RD*Nq|uP0|UrN3ZDTv z(Cn0g;-{LQ^BS>jY4`1M5HHP6Ai!^+sq;2jK*Gn8a7 zzT6~1N?@280ZlMFrJ`Waof@}*UY%?*kA5@pZJXQqm`|}XX@<_)7w!^8IlMeO9Olo+ zV0+yuL}t4miuV{LTG{Qu$^l`Ebgm0TN?oi0C$^1H9KbPe?N?k-FxXuCvYR--{nZ(c zBtzlj#0%$)xT)TF>`QahJrkPs{qTPR&;e#{%RuKlypLMqGrUsL%tSf&>lL@GH%GG1 zeoL?d2bO^Y-#-^P7o;fPZ54T8lAsP5RvbAs?azCW`ylOk_Hul>`2Gd7dN}%U(lUaA z;_a?q4Zd*8oO9QIVBXM%W&G`@NkjnSc88^kCtZiim~Zn(ckAsYvgrRuLR1N^(9D1g za;C33YzXCm?{yC~Iv5xJM4`7U-tKzO@jq~F@3h^%DFTmKauy}{#pV*iA^wauF30kB zdTFe{|&MDJ_KWO$Ar9e`rECPIYWy@Pv1iELwx4f z`IW)$X59 znGE zE%w_++WE$>P=Q>U6=HH>g30nq^;g}8@^p6C$ncZee2)0qn@;|5U_~2tEI75Dc1nvk z7V?m)J;to-<`mpFZJ_@Xxmw@(u&+Mz2IKw3$|Ao65tFN75{L17F_(K8yEjQ_L7;6^CIp1+!zjbOy>nX=yemXP$m-BmEeEl91hv4;Bl zWuTEnFAf*qXU_(nkcIkUbWN|8Si|dN3rx>U1Mbrqk50(LT9YXMjAmyPd@CZ6`{X2V z<1ukh9M8g{{(F9ETVok2;}-fGc{Lrt`MgkaUJ|S`!q*_@~*%Dm^i4oUhTzvH}{>Kslsk5Bw;$wbBmsl z#^AVNI=l1uViI2Pkceo3nJ;ahD2<}z=ht>A&7NzLIneY%p=w>=&5tO6u9m)Lt%hyb F{{ionjlKW? literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/6.png b/src/tests/mock/images/kivy/text_images/6.png new file mode 100644 index 0000000000000000000000000000000000000000..e385a954ba4c14f366fe1ce4c8c848d5351207d3 GIT binary patch literal 7644 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 E2Ua8%FaQ7m literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/7.png b/src/tests/mock/images/kivy/text_images/7.png new file mode 100644 index 0000000000000000000000000000000000000000..55fc4f77d428bb159e85a6516fc53ddea20c8c3a GIT binary patch literal 5941 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 T^j#y4E-5M%r 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 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/D.png b/src/tests/mock/images/kivy/text_images/D.png new file mode 100644 index 0000000000000000000000000000000000000000..2549ffc2e8bdc6e63dad4ba8d03e20e1ad08b4c3 GIT binary patch literal 6381 zcmY*;cQl*-8#YB#TWv**+FGjiirRZM6g6wMYPGRq6N>sOt-VWCii%2Y5vpnhsj5-2 zS8S2+t?kYC_rCwUe>~4~&T~HJ+}C|y*K=L>IZvvUg&`x|EjkJc3Pxiiy@%xIz<<|` z>*RZ#J))F?g1gaJPunKEc-Ptar|1udnA07HP$54gZ|;aNQpD{hbwYx{hZ{PAVh_D| zOw;VES9MHLWAu$C82Zi|9Cs^h4fMeVV7UVwX8Uvzbon5q_xxXmI6-aE)rcM3gQ$-yRGC#d*KT{O=~x80eqx(ZXfrQ<&Od~qt546`cZgN2SGdw|D^9I1I5c9QtEF8h;JXwD4afQQf78O*E8fL@Ww z{qee>{H2lSi`ZAa#fYE5Igq)#IwOp@BLr&m*1EinQ>PGyM>;ieC*)GoJmppD8iHZs zm9F1+mdljuCx@Q1_LBXjiVc3=d9^PODP_l&Qw3Sx>&-31Uk^)``riXsLL)RB2H;TjUM6GdnWFKGskRl-`B7o-6N`puC?d+Wn z`$j*AmH#exD1vVBdo#@+kKi}w#Sl+Q(rdF4(>Cd!5Z?}`XmI3K6P>FyTB1)vuJ8-N zKy0qxY;2-vWM(&i`KpmAPs?7`P7Ljq&7DLQsL&84ULLq%Hw98%@D2GPtPM7tyghx2 zte_hWeivfS6P}~IrhUgX`*XI(o2h?0+=2%}l?!lU`P+8ZzT>_pq6T(9eyObAU3=e8 zlcg7mPE~xpmIbix;`%5bUHOg-v!*8QN5!w9hbIYxLbdTtpe$gPBAiK`OLDx(wkN!E z6~3IYG5nB2A;O0)^q=DT#5itbENh8I7J{xeV?;izWa<&pwJYLn-E@*aHLAft>ZCaW zVv$Ah)nj-r-$Zkg$#eG?HzhfI*`GBKFs0kW zQjCEe^D}lck7P`&7ZWY`!-}fC6dQ7-`Lt??a~&Y*_cJJnIhD$f;inu7%k;N4b^=rj z?49)6ZX3~j(f{O2gEVXq*`4{8pX!M-fk;B2LU!UWlaANMCo~80Vs@QGgSo5-*Ywh| z-h6!~Tq)6V=8X5)5aFFkynhnX&TsD{P~^!mU*dY_m@9JtY+PZF)RrukB3`%taqdqD}swcWFe7=Ra>iB>iH)Xe{eK+OJr!f~z~Nas zVJd~R=?i0o&G*dMBh#?x02EeJa{2*H@Y!4)v~!}7pQDJ@O}(CvH`%d7LP`8lf5)C+ zo20%rtB5V@t#tF{O4GxW&YgzT%HAZX6()%vwhOV(pg(^A8mew?iyDc7ueTpOq`~Q>+y$EnF}tTB zvhO=0YF;CL#q1gnoC)~3(>9!gc`N&!{ycImm6uEyT*!Y6)C1s-k}_7}QzUY~&Azyw zxUmW^`M8SaYBzJa!m5Omu;(37uatxE&Ganx@D^Vbmpy7_+I$N?w`EBJdFvLnfIB01r0lM zB=6m^X{N^(+|K5ua?NDt?MRu@wPTad zoTd#NV;CdjRbpwV%|FruU-RNWQqc!izBB17(5l@nj{X?EW5#SF&-Ru$ouTzRmBHax}Il3OLZ~TmscuB9|Is8@rhnG>Kddf3m zU6K4unFd(A`EHb?Yk1vCv`!CN>~VmXoduD}!zO%(b%&9Xcv1 zo6UWnbVpw}#|Ci}yKjZ#j&upE%`sePN0-ThHnn!O{OeI0gWg0fvykLPdSYS-;E7p+ z31mLJj;;v0`W+$-8#Np(n3|A{dWnAGUA^)x-F)S*cB^qU+p7A2O{>5A84+;Vd`MP?5Npc zPucvGmc*v{wtug&s|4}}jlDVCt?D}fcf$bjSP)Yb@#bRN2lLWbt>(};TRi23)33{( zY?Op|j*BAXlciq?)zn_~Rm_#zBK^X3(6LqBJ(^9oS?x-Q3TJ$7<>Y z^<+H80OBq8>dl*-NFbgAUT;o3Y`9Xk9JU$)O2LF6fnj_YE`=9^s@<+An$~Uq?u=q( z6q|-v>FI>dG)Zu9)-8(@zDQqqyfoL{A3!-DO%*h`u2lBoIOGP}8eC#0@2sl;xLFu> zZ%vLfEgaqbPnZksISv)=0t^Fti_+o-Wyiv?T+uy0L1f>MB*RE>6`c~UQb#-pq zjjMkOK~xcKpiN9A;|2nHpS3J7qO@L6Z)@4C)a-UAx4w1rZhmFT*yFyL>bxL_)v94> z(x>HMZ69|d7TngvxO)jgujNXjkdpOC}H{C=6NcZfbX}d}*c*)ksIk(M` z?TJlWh~88icgzG~=jP(SXK}ojz}BllLg;*y909S7!^>m9hl9%Kd`F^S!FSI7*saKJ z*;w}DEZM|*zx{CjAdFYkS=*{)`?@L6voc7|OZxXh*Xdkj+<5$B;-2y~yB)eLEpL~) zm3M$=NnzwO_Q#38w21cz>VFdl{~&3P$IG6b-PXlRMhwF~4K=>Vne26!dA;Xk%^H^2 zcXGA1-9!Q=n1)?zap4z_^+WkzV*PMnhANGCNS{D7aQZBGx~Zj;QYF@L=JFq&KCb?P z#$iR1?u(DBaJpN+{#~-P>)xMp)Ix5j$>X~NQ6P&;dnlKH9*)IlzSRXDnh5MCf|Ju= zgG+A}7wiAN8bqxjy(U36m)y_^hdi$d(d}T($!9O5VkQ=mu&(`YYHb^7BSmqpT{9y( z`NH*TTcXVGRL$ffWE852h8EZMGp6;MM^{!eQl};)p_#)=zC&AtrFsfk)T(S4j&sqR z>jwr~Vz(WBB4~Q%>X$7^rfcrI*UkG&1GI|*U7TWPT(S3DV)iufuul@uOtZK5nF-~x z$@-0mjxY1Z?rZpA+{oR8__ED;&9@LhUihX0p^ZX*dzrr*)6$C(V5=XkeFqriYd-_N1GN4<_yTew z4k-{J>meZ~KoLmgFjdsQMNgtzcV@{iS0~hpnIHZq8n2r#*QVY~cHLc0o7ywGtz}p` zYOPl9owEj?FuV1?k7&<`0}nr+hh0Xu5jZZ6>I3J!X>;(}j~HAd`mPF{Wla|{8s4M0 zq`^NkJ)|yUr_RrMB#rDYc;CSxH8teYk(HxV8m#XH)te_>V=V2~~`{R?)*bCl-DgDNE8@b^0zKZ9L ztU=6tiLdH9vKP#(Y$+0RGw#OboqIOYj|!?A4PCBUO}>CcHw6dnnn{70&3&HkOxvG) zEpWRn#p=Y4O=dnBq?+h`ol~Y>UjY&C?7YwUiF>(}kJc)a4L<(YgJHu9Kv`KuSJ!7! z$FyYrV#lV9ms9xjMU{i}R8Aob2q5yB1x@1`1mol%J zBjE`$%NHP(fIr$VhkT9+&D#-!uxa;SzMb4Lp9!=NDi@Uj=l63)0ylf|c3}8B92}Zw zf>8xHqRnU@ZWWh6E%%xWhfargh#WcSgx`Am^4mey<|=+fc_St?GjkW~&3c?qE2%S} z+f*-QWox?)GUfP@eBQj&04AU6#i*$rF2g?c7wgsm!2n!RSdKssE>j0xE6^0BWTyt9L^MmD-*&5f2-P< z0Blfmv4^caq%WA0Nk~HZINSmKPsQFNj2D;ajn>aZ1+t5!GF-HmIZ*ewU^NX z!N9Mv9MPbc+BlzFx}hjB{~>>ugXn=*IM4r&}kgB;*^WnuK8Y&p%Tw zzWe@et3oHy?@MVVwg@FfflJt-aV^gCG4(l&SBF7l!b#WHSjchNtL*{&m@B}BUqI0w zPt=~TmLTFXVs59O&;CdEe^$7JRBvD8a-rV=;r0t7nJBQp)I3e4Y`iuf)W@?F@aH}t zAQFb==b!JI>I?)ghhSmBuipW9m|9#Ii@Qel3p*{RVrdk~tVY$eAri~;|HmwWH+YO` zQQ37rcCLh(I*m`0{cEU)o(ZtGJY5E-d{7R}JYi@h`NV%!Qjembxq`5?{*{Y71Fy9; zNI+Sz&8GocBBQbW>D}9*Cz$pXEfNMCJVKUx5Z$}qPs`a#UQK+0m`Brd&D+M@2-KxJ zsZv9~xYTNux%2$8KI0lQ->|IZm?Bof&_jXjVb^bwB$}e~S}$|Wy9E}gQAZEEn&VG9 zJ6aa-;(=0L?QY;;gy5jq2Wx`~y0LVAkO00P3kc`}wg&s;f7ZHM-a?%XQLAO>4Z;X0 z`Rl{5Vd|h=;3B`>X)M;{hc1>P_G=4t)CXV6x}OEO`JfQ+sj3+82PzhHk%U2_p0w|6 zgy-=__f?&4Z*{m_KmS=9CvX9}QWkm0r%rP|3D3h8b2TQ9Ho`=#S#c)QO3WM`~haJT>&5cO%n9@-WAJ6UR92q?M!9*HS{f^EW3BelymerpT#X)n&Bj|lCooA zs`@~YA%}gB`xbJ{?^wkxsP<1}7pYup0La;z>q>hDgD@2$xaa!akOh?51;My)a1uxvwhJhYD)%>}+O_go!fCYRpGg=IWLOIU za^@};sSk&+lxcJ-F?1@S$VZ9f9bCK%pm7l8uM@qZx>&p5u*dFO>}ruv)#)6bWLFH? z+nZvEyc~`k6>oUD8Sp^7I%2dB;y>fL-nV^yu$hG&loIB`Y6=w5Eft2NzWp9*)-W2d zGeLi_h+?`Bzi*}0PL0v8_5v5y8Qh^K_`s%)RLqM-5%bN-2 z)-eJi;MSctG|$GofW7T$R&^gCYOiFWnLW?LmmtwoP?kr=CcsKJL6HKEwXk3EasNY^ zFR$`dsVSlHRXfkC=h8`U^7>^^w9RU&BvEG8VS0M33pQP!OWnxSSVyNEw4U3f%aiz0 zcg%?$IV!)}lLlHy<6u-9duE@mHubwDXvujEKUB1Jm@RJaFz+27eB|}x)%U&SUmro7vWiN5an`?L9-O zVK)?4`v^M?^!pOA!BK-SZs?PxP8>NN_7?z86hV`-#LP0$KplwnfG{?bO7>wBIUerm z0V{9LRg5Yg-E|7LBd1lBnlql#U?44fmppYc?+nn_p}!H?;G7AXyzf@7kJybi+|0)c zLjLgEF&N_+lKB?WMB|P%j0a(6rCgk#)N`kWvP0vWBZ~jS z9Dww?3GEE~FU(ZCxJRjTSg_UpuQ;Hzg1?E^+(FM}0s6lt@Y))lHWW(kn+|Gm z=r6l>csv?c?oDc>zrwx*56{+J!qaA@73QyRg{8gQVltm(PP)NXF?+Iynp4sUqVT&v-XE9>m2-fxclaGw=K1;v&(fml^FPKZ_^K3 z5!F}BH)a8wJ^S}24wfG1EK^R2uY|x<2&+$GslOVYz(^(1My>)@EjbYcos{NxB7O_c zS}-@V4(_`D#MqhJO!HywL97YqUg^CZj@w_E{Uex0s5Fc0LyR6>?HJst@9C4p$rBCO zhL<9IV&0dCoawtgJ&aGV(BfP6X7XJ%o;1!v6tWqpXJj literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/E.png b/src/tests/mock/images/kivy/text_images/E.png new file mode 100644 index 0000000000000000000000000000000000000000..5d6316114ef0eff37bd721612d3c9112f89b5c4b GIT binary patch literal 5009 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 I#Wv#q07IPYQ~&?~ literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/H.png b/src/tests/mock/images/kivy/text_images/H.png new file mode 100644 index 0000000000000000000000000000000000000000..279bd1ce6db1edf17782fdb3babb05b5cfc39ecb GIT binary patch literal 5054 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 OU~F*fdX=7Y-2VXhe*nn< literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/I.png b/src/tests/mock/images/kivy/text_images/I.png new file mode 100644 index 0000000000000000000000000000000000000000..c88f048d7a0a28879958c158d554a7457d21481d GIT binary patch literal 4713 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 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/J.png b/src/tests/mock/images/kivy/text_images/J.png new file mode 100644 index 0000000000000000000000000000000000000000..1533117129f4e267b4e475d10a41eb7fd378f7ce GIT binary patch literal 5841 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Ν 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 P0T}2#zE`8;^zQ!vHTMmM literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/N.png b/src/tests/mock/images/kivy/text_images/N.png new file mode 100644 index 0000000000000000000000000000000000000000..2d235d0618e32ec6c2d4d0f2f488a4c1e5289011 GIT binary patch literal 6509 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 O(3lvR-$WX?MgJd&$OdNs literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/O.png b/src/tests/mock/images/kivy/text_images/O.png new file mode 100644 index 0000000000000000000000000000000000000000..c0cc972ad641d61181a66c2858e783b6f6ead93a GIT binary patch literal 7912 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 S?#+Gx0000Y`X9O literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/P.png b/src/tests/mock/images/kivy/text_images/P.png new file mode 100644 index 0000000000000000000000000000000000000000..57ec50124111d42dffe70bec13bb3d7487843791 GIT binary patch literal 5914 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 N002ovPDHLkV1kMUAfNyM literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/R.png b/src/tests/mock/images/kivy/text_images/R.png new file mode 100644 index 0000000000000000000000000000000000000000..090646f5d6690043e424755a6f039ad23379595c GIT binary patch literal 6404 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 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/S.png b/src/tests/mock/images/kivy/text_images/S.png new file mode 100644 index 0000000000000000000000000000000000000000..444419cf0d38b0b6f03a567558a54831fab69811 GIT binary patch literal 7826 zcmY*;cQhPc(DtgU*Q~`_ErO8PAWGN}Er{MDdJAEdO>~PDHG0&D-peWx(S_9oAzJj_ zJ1Y@w`TXAZobPJRTbs*y)*XBe7_9&g0L6K7>qrc8*va;;#Mt7&q3~EIlX)7JwCC)GXC#~P4Kh~vdh)P&Qgt1nULO#ibc=+2TPtCU4$aKI(d)IkEhzs*2TaWqQk@hP)JxG4a-Yh~qyT zG~(wktyJlqr%-t26nyrq)`)O-X2?G$R>S8*K$&N->$xdPqa!!Z#Ek5vGaW?|5)rJL zEZDKz-xvIABNSrdJ=ju#a*@fg7vy1Z$57PEp>?K9wa<6dl^^gB=1m^|d(5dTkkb5!$A+|;+GFZ2Yu8xf zYa4l%(}GAly=K$Ud)V19=jj}WpCX3&7<(w(+xTNfz%mO{&7|n`w~Yde;E@o z8}mMg_5L%PLp?2jtaj*7gcpdRF+jjk{rGJ&sm#Y=4fJ%ww!<2f;`Bkv=Q@^>I$tV5 zBf?)Uvos_5$gnF;yFS7V7Gp7??y{V$#N9$%`cC4&3sfF1)ABJx43aWVY1DuGj#;ZY z%p~r|P1Q#33NU}WtINxQht&!TF?g^jx3zmQF;SHGCm_Z>Ub9-Aa0)uRd%c7%|`h zJ{oRWaG{=mNIbJ)C66jPKz5|=-U;+oc!^8--^@SUI`1Ydi{W;@wUI0Xl&ud>BQzf- z=lUM155#oNDDHd5y03oK^d*#o}hvPjQUHH3sh1P5{?I`Z9l$R=F1mfEp|H zbV~ z1rVnNfjOJOYQHL>4@BY-YHuFA5fEB)RMg}QxZ2;Lm;rn4=csQ{l;l7xSu~l4ih}64 zGxsIpdP{=KT|oV|liP-tnE?n#%xeK+05#A}H> z%g6+}zk2@^3f_@NMD65@_f0jd>A@#djTXjT^p@UgbX9Bq;$_YTY+G87T-?87F2^k96mcZBBYwhY;yzLB z@6CwV?@jnU?Jl6NP_qj1)u-<_Y3sYo0Tvlm)}xc>o!=TSqNoefeq519jigKWDpX6{ z=20Cto~e={K;qwFUPi~<`~a2p>d&NDWQdZ#|FPg;!lno`Igf?)5RtUJB=zW3rPl?v z%^24PK&rA}3YmiG;2d6{!Be__Ijf>qQ_VcB>!p4mDVl_cZ!YKosJ<2JW8MYBN^-YG z-lQWh_zym2u?YWuy}m;0AA%8>&zx%IGjd~*YaM#M9Pc60@|d1!)rwKg(dF_XYU%FLh-Q`z0&MMijtF|}jsQdL2eg+}dg zLCj?S9}qfm+;J#2Zkhx#uKaPXMx9`!1%Jh9RDU)Px$je^d$4TAUh%^hsh*m}uU(9O zJ~zF|L&gg?ciIMOk2=;E@z2WlHvcuKiv9g_Qwb3p7UA=@pka<-pTe3ImA?~xnrM&1 z)-}Sq!zQH`dhhLF^14$z*NG3^;-t)_NbK&7B&QBbyP9i2XH)nZ8Jn6SakwWwVl@>G z!pG2+P*0NTIqV=1p}uZ#_m!D(Bu)sQ6Eeg5#{ef{FUlz`Baw|&n6(>hSE)BBVqLpq zbV{2lM_v?LpIj9T{_?kZbzog7D+`m03EmEyd^)9m8h+muiVBysGLs`q<{Zh8NJ+NR zi$i%kzWz1MFMQH;1?9-lDmBL8a}G3iE;+|@#>LkB5+{0`iDpy1_KgrN7_2)#uuga# z0{l_IuV2_KLG6q;``GEjc8M_0jQD1x#iL+`hiQkn_5&b$1ZuAd_}Hk~WEnq+QhySK zO1>pyW(DxZT|+g|%bnPEddo#F%S#!{OY@~Pf9!^RP`DRBnl^e85@cUeiXtqir`A1@ z^r>E}V7c!x`1qN@-ymJSNL;n`ss7R)3D%erU9&-?W{>0|56Zj@^2;VTKru9|s#@a5 zuqxR@kn|TU5ZIy2xdk`r9WOj z4-CqdrI`Cda5llzN7om-4|I{rhJ+Nmt!_p3(Xh6e3<5NdvK%r0}>fUCLerv@G@c&Ukf; z`UMTok(#z~X@d9|vUE@hfTz{ETb$ng-kuNna5}w8=Tb*m$=KRJrZzW#DgF}YgEblg z#(qv%-xW`=Spij$M^CSEw(AR)914Kcwpqz1GJ}gv!JuB2(`qOf&Vvzc%IuZft+G7xT+z@`l~}>|4!&(r%Wv z8Ah(!aRgCu#D+hC<|4F`?_|E5m8{@zZR+}+*ip(MA;j}cT;N3 zW6ltZ>>WcWZMl!ybsC(&ZS46{6R^>(kMQG<-K8S9ztGX|#Gna2rnpAMeb=#4(S%oLkBzSi%zuiKet$2T$o&X`|8v$N4OVh=N+Zm*TL!lZ5{e zCxXg&ULR1=8B3y14(@yLyWHdMWn%CBdbGyyhErQ8YRBxO5KUhDRT}nE^B?SAg&&%- z@)%45MYJJ@A018KkPNl4Hn=ti;)$rvwv5kbT^Xw!HKIq5@w!O@|NGXt$3dc3`>}zI zjAygyK?>mm+lf>YV&{FDOL=10n7E6{T3;W-nDIs#K0x-@wq{APpzXv)uDxII2a$v`&dCOi%wIGNO!qNk-({OVj7!z`kVwb&T|kqIcK)mnU?C}l zdQaJ9=5C$BOCog)Y-C`#V&Y;G^eeSK700CZVnIAB-$7f<*5@g9>9SQFN(vqf%%gZ z8}o8pV#CVR8>`t{jUl_-57Va$1t@s$)3k?ol$Rd(cpU(|T&#v6X79L{6=*)xKA#6JQ8~&B%mnCp zn`IsN(~-ywi~dY+|88z4^j*n-jN{+C>@zOm(r0!@Z`u1vg}>8s$M%Kk`~Up?#PJ?Q z8circT(8<|8Un%CWm>)zlGy^w)k#@u)TMcSowzKd6+h*Z&g%NddYj@$OnQ#z&^M_N zm2m8WRofL<2&VjO%}H(E*611xInQ=P=`!ZMvX3}T#}Zvs^Q>^LX~U!d1BT)K*mqga z|Jl(am?m={^YqYeeaefeG$-7F@o=yc+FW0>U~Q0kXYW z;u7zKVgzQ7&%K|-rBaJj-qcio>#zUo9}lmp=>PPD808K6a_|%@u{c;x|U(F+`E;xzYV{d-df z^em$)UofP{iqj*vqZ%}HNKc`Jzn{{~HIX!Uh#pP31hgIyh>ZA9{01q$Ht@shSF3(O zyx;6ht(Dhc1q8gk@3yk{b|vM5Z^VSEmZ*h(!sZ2VO4g(xRt~mj%C$yS<-e_vxjfwaFS2l0u`502c6YR~|F) zDHV~IEcKPAVBjzcUw8by-W}8AQn%+VORb2penYv&#$Q(U{Gq+lnFw;EBwqjT#4E@t z4N<*pdz*vbt_`-w>`fNy9jNO@jCh19aLiyYikFfM(BjR0OB86?CuN^cQAb#gAP#3h zz!~S!*}E$?53T!tUspc{!HatI%gc1aWQ^-#rR)G_M`~wT-^cjIe0F*+iqD1O7Teld zzBlnQ2++s-Dt>_vekMe@fsQr>@t&6D41Qrjhx5Y{V+#$KD^QC@OY|s-V&zlS9*ae1 zqS!Q2lmjR(Z7{-JNfj{nm8D^a#$}7>FD-V;hb5UjVk_xK>yLqSM2Ud@mp6$GTsK2{ zXz)<(Ko8o&Wd(v*G{G4vIm_FLtAK>2zdF-_1165K(wYQA#vK+#k@T{Gch161dZ~S} z0f969CIbd`!3_?EbtoaYb`_c|U=(l^sf0ZrKu^MQCBiBhFO|`-a-!B#>7-_^SDo?4 zo(2`xA8gX{y)z?~j-@~YzXJ@eEaO}w@S~yFX-af*FOndVKmty6H4%fo)`?4XI)&eZ+!Qj>dU(x~tFdGELKS_$T!!nZuE640sV{TNt&a*SeTLFGR-UW*m%ABz=`4w?qyz1GKo1 zyA6$6FFv1Kb|W;!nJsx~^*%)ptlYmW5WhR$OE%m&d%?hX=m#YA!y2CiooE3T+^t_) zo#Vxq-XDfws%pJF7)%-pW5{bAEUud{miG)Z3} z>rG~-Q$0~O;DuUz(Q$P3poU)P^NspF((8*JVz4<8eCK$X4P-yW5m>%hj4wJF|6XEi zuQdBW>lpV0V)6Xa0LNRv7mAc^{m^D_@_xd}8+8}9(83*fsj;HO4t)Wp^T^RVeUB>d zkumk2JhfTZ@EM(qE4)rW+oUB-wMbn6bO5VRa@D8l9kY+)Ul`IEm?cOjD;J7nj@5#t zUEd2ltK7bg8p?sMD^0@3Vj+PcvaXjJDzm&LqZa?F=dT_)--!wyOee_j&G5TU7Y9j% zIFqfT8ZO^l|2b$>!}n94o>dC9Jt0-^)F44^tnujrn2rKr;Us!C|s6gjaQLrdoK zgt2%035Piwxc$qfBi*i3oz#^trBOYq8ew?W`k2~`jd;~hy^;G*GxP$)H<%|gx|u$F zp0`7NvO{VYcWXx>3o0|jK6*~67bmz@Bpu_8TWo{MicTQJd&k@zNe7rcZJH#p{nsO~ zvm?g!^!{2L(cbBm1AQ zaUqdJX8{YWOP*>aw<6RX?P!X*mK4nbeO|pM99nTvGxuy3xek)w;@xM`PR=KGfsTt| z<QPd_Ob(PigRjs%py@#rwr!F*(|j9H0+ujJ-)2zM>QV2nbTd|D=sbqn6%de(HR zewosB!FnZUnq+WK`Ji4P?}7y9XZpei9jbiCwVvXEOn)HBbYt5TW4m*Z0B1Y32lz6dOum$>&A!wSBo0qODzqHU*^JXphq5@||eK1hxXz?FFYvbq!Ce3;_Qh3fTSiJOAYUfrl>;!o8 z^7W5@2f%~Htg88<{HS2b+iM36SG>D16NzObyj~@|cKIPZHa}Zz`O2zff(%eZMVReN za`cz-guFM)s@83%c6XGiZ?(nIaOB zA#d0=yDiH40#9UGnY?>W+JB~Sz1!~UK}sc+agr-Y+xnw@3_aKFX$WNfm5(i#hVa*B*)8#8$Z%Y7zjqFm%fhGotm8`ZUUSZI*gLExA?GOP?SPwxF;ap^Vmz* zb00{Y6^!8k|_(j3eY|;(Ev??BAA;F#pW_j+{(8 z;d9~8+|Hp6u<}Fk&bQj_&Z-Pb)IOo*(Bmdkz3L5_CB3%CZEw{pHk?kTk!z0a3~PjhBXm3WT0Af9EP^Lr@02u)t+ZPi+DPKo*} zbPbIuTFG+8hB~304lvDpBbEqM;_#a%B`=>5h^g5VUotQIc$-*69tmy|X8S|y$v?lp z4U1qGU~9Gc4euIpD3XBR>=~N}cJ2$ywBv&Il_jnBWGPm8$UV@Yo+kQFkkd85^lu=e zOi!)?9Rb0MN5AhYG&}e|6C>n)WFta5^xe;{b<4w;d7Efbme|xs`I@?%51{KMrNyTB zT!=upn?)D;;StSB=P(*>0DF?;t2&*wx(iqXHTDl>?1z%1qX|uh>82Scz8i2 zd*3SXB4-3WvQW1XitFm1bU|4b(Ez zY+{4g){AKf?P0{`jS+$UKGP%aPb{MU_@I&VtJtbKfEPS>5&HE&QlX%w#@gZoT7P-R znJ|`l<>NVcX!$Vyzb1-wa2rC*gW-`K;1isTDh}XBbNq9`^I$V>QTCecXsQP5KYK3I zEYE2=J`p>7G}txJcT#>oI6PjTi%qGGRu_~dO*VH;d{ZM=FQsb=ggI1YZC`R0=10)G ztVRWJ6u8{dgF0i>;B>!di?r5vTHPk}AKyRN98w+jtglK^?qs1Y!`4q|RVULP!Dcww zEBhKR&f!p5FTJurdgewOEHER#bT#`oul3U2PRk>RI3t78r zv@fmCvA(+#L6uDt`m3*MAO3&5>D3}S?B1e5L~d1JGT$oXsiNZ=;^e2XWMKQ<(`@GM zPxTflE6mnucjO%*j7|8LoV`SC7xP_#ycZQxMNvm)Yz3=g@RR!%o@^m^5`<_*b9sqb zK=WRschLdeZ?booMfq#RzoBhiJZ7j?GSyII%%h>xX+ymDCQcgrZ zp%=81?_w-{CrD5NHkv3ujtqP0ZFu@m?!7#8tIR}0tkPh%Bh<@T)^H)II8U-YWZjun z#h6yGh{_WzT~H#?xsKBF1{qhGrT#8RbM^U;Xf`N1)TzT2Au-0O6V(b7p;d-yNIGbb zA%lVAgs@r2;R+{XmOax#>2=cr&`MQAh-WqP$Hvc2N|S=l5T#PDwlYbw^Skm6&zUyzfxCvNJS6eu|9?9Rum`^V3LbE!LWEs!(CQoebk&1$8!!uwI(B`r-jfz8o? zu`_aZpp`-Wt?`tta*AisZi>oA^ReP!}uEO50H3e^LODXchNvt&{U-(1XKFLp}sZ_%Nz_$)TWj zY25`EpV(q?JEt<@KItk@>zP`)qi*eV2F=2F$#ANUOhn4 z8QBUsLP8YUR=#O@uqh>Z#ppWOL92o8(_ssCLE!Tbln_Wd zTt=8zR;abx`i7G4`v_jmkKuf6!#Z9!itNzagQJhRotF%n`=KP73dzj)Ve8+ zt#GnPmT-;0{@rGAzSFVSGZ$!GCpB<34%5Bjz!ZTIN43%`L3 zQ&wcK?TP+SaivWN{$zus#7`$EJvBLFsO}8|Gm;`9XMBIBHrJ)2Dullezs)Fx{GMV` z(*BXpD}o5K*JZQWqda@eEEfgQYC&tuWcYYt*Yz9$~5PzYK$U{-*C~}6e gdkQLWUdbA()(7uhzI}B2*9=fq(p0RJw|xJ901#tKtpET3 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/T.png b/src/tests/mock/images/kivy/text_images/T.png new file mode 100644 index 0000000000000000000000000000000000000000..ace7b36b257305def81f8856ac85fdbe798dfa6a GIT binary patch literal 4793 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 ShpVT13SCXZM^)E&HB3ksGXp`uS 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 K6jAaPq5lIkL3H8( literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/X.png b/src/tests/mock/images/kivy/text_images/X.png new file mode 100644 index 0000000000000000000000000000000000000000..be919fc4b9003ea5d3e15c7bacd1aad66a292c8c GIT binary patch literal 7367 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 literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/Y.png b/src/tests/mock/images/kivy/text_images/Y.png new file mode 100644 index 0000000000000000000000000000000000000000..4819bbd197ec6177f5a2cc3d575e77a108a1f405 GIT binary patch literal 6459 zcmZ9RbzD=?-^b|=rI9HhC=G(r2#!!f+5rj-1Qh9xDLq0Og#nVHAn6c^(F~-dks6Gi zbj?j*FyfiN=lA^c{Bh6yN5NZ3of-ssB53{_3pL+@|O7!glTQJ0H;Cy9YyWo^l6l+F4?O<)`7G+0m^!_0lKjiutiKKiBBj zhL3C^0ZXq}CHR&oTwKMx9UO%IQe}1JjlqBJt!m;;z{V!*Uj%#)1CW;Mg=UB0QUH2W z=)G()juQq86Ovt^Q zi@P$_-#2<{CO^zv@S%VU1a5>XbU4{HFH%ME#zHHL(Kxy!}Iys&fjCg+NuxJBcgCvG$~tf43&uHO^s z&mGH|-dObD%596fYUsS-w)xWyF=k~p9pgdF&Fi#DeI;+p<{UC* zZTN45>@#Q>#ZZga!#h@Fwck(nDK-=Ne;(32Y|gDBI~3o&X1_oEcFZ<5F?GzZffJMs zf7S7rGw!JK?0P6(=tr4*2B%+|!+i^NUCUWyT~O(_h4s$!eRaZBM{Gegy+G>o?h0yp zkzPV6O6d;DCufY0NzDCWNLgC;p`WQ^iXu7y3xjylTVRSD(}Xg1!IC*gyk+gL0jieN zSWk4+uB?()Sj=4~^5cZZ$p&o_V}38&Y{D!V@nOUl%Zy@nQU~J9{;^0UNFC zLE`sv^=G;yN)QO?|LiGR?j&klurl&cJ^co|d?}6UhFEPSXy7Rr?^yH5-L;&4yUkBo zm1e|JA9y&ck!)0;r^r{Cx^OoLhIom~vQrUEOpg3;0 z+GTlT@fmpAYy^flXJIkuu2s<6KC;CRR5(qk6_cVL=z6G zBJ&>$rLGWA)ht6_YDL&F+==>LCF{r*nMgM8*Ql?AC}sb^`lu(8(w`Tv){zm^p45|_ zv{~h_?AZ@#<2*{5ikliu%C0tPpY3jKQ`c4R&2grGMo;Kj^rpnY!Gu4^TB<;;JeBSO1Sf3@cq=dZxWsy(~>_c!idl#Gz$>Gj}t>nH6e zSG=oZ3%Ng)tX5_m62TAN{~k_w|EZ28@k;%wmc?Qogt>VqN0uMop$^t;uc%NldjBcR zQ_a5_77<;hUI#3B`F`||jffV+vPBEnFF)R=0JN5Cr&x!^*Btu2T?A50MK>M1(p3>% zX$qSi*yuHY>vdie|A>Bru-N|k#ifk!glq|dK`GC#YyaV`QBe1%{b?x5@Lr%i&BV){ zO~`h~?{Tx-XaKd*9rOLip;+ph!Yw(Iowe6!Yg(GlUi;L$Qpr;_UA1PKs=3w5*nZ@v zhjv$CaDBy9Fjkphf<6tnfma&PwKD`VevlpWlL283qfz&Icvc0}5A^kFw<;<&#ic5Z zwd^jZ#WT%nHEK0q50!+T94coCH0~zX^Z?zlFqselt9Eb=VB09|rnZR2p5)i1z6rc- znV&8G+WhK+Da!jaF`ak0jS_K`p*16(>Q5c-M=fw1T+i0_jG}g);ak z?9w>gTHcnK$lFPR0L7mqJ{p!m}&XI<1f1ZcdSAGt~d%Vm2Ea+H}FD9tvumH44_X6eDgyDwrQ0m7e zVJr2?S&h*p;?F#{OpNg4j!%Ly9Q{TP5?%$YVG#MCU39^a5o$YOZP;(!a~(bIyUK`* z384MMWRIa#fa50Leo-}$s*jz2=n&xLSqcKk< zlC7|4+0F|7F>}xrG`ORdZlX0qGZS%qf7a$GPQr^n1XzIG7f8}Kc{-vxn1d~U#8zO< z>#m?b(kd0cl8*Ot%~ZZIj~WW)kIv0#h%JUb<~ufY7vrC+o+p?@ifz)gE8j|n)>&|H zm9(%jJD%Hq5DLCg9V(KKAK&p)*&lzHs<89%(uL21P$TpsxXX$#@Y`c9eTGKXZn(eP z5zd)b!J4OXbujgMQ+c!_W?0SN$P%`(HdXnEEXRknq$|kIWjIkmQ!-yH)0;T7MAei0U@lY`Q@^g2nP&Tm(1RWd=?)sk4W}7!YcW$rtMiTQ$NV zm{xE9sSfpEq!!-ZcD&xqX^$z# zDHNc|Z9)t~h?L74zBzbThsyph`?}AkftSXme?lZjmYx|?iCz5lxBpSOiazdK`#e*b zpL#j=r~X{H$8MfX?II+EsI}|?X?^#1%irQxM%9(bqD9J)+$)29t2G-D#tQ;6L1P8T zIAeV@H%n1P6?0rG4PlHP7kKa*K+=$Cve0q*Ii%MTL zt1|7eggpj?G%6aHF6lG^%`2Sw&`$L>aoC+of7=@;9K|79+^^c}VFUpCC-mMudpKW_ zOPdxwlstzk0?uLFYSMyabdBx?TD=jPG(eu0{5D^$RitE9my$tjk!;v^A>PDdYR}%J zkfo@bEbjNrP>i+$mM*S9-Z5)RtWM^Rk>a%JBU#8Mvqv?uASn~HOtUQ1k=Gz|O_1hx zPpl<5zuU@m+t%~t%Ah`k#*@W+(*ZemYuT#@hf`20+&@aY0$9oIS{{M-5h>J*-@I`9 zRx5MB%Vll*%ll4;dwC-=EJfG4=uVpW{Ib+px>i=*B1*yUVOsx~C`;pdKP9+1p`3*)&XHCimd`^8!jb`bNq_UMZ5*EaHHTVVG&G{U$Dxw#W{ z8uu25*d3rx>c-@{fl6mP$B}&enOSK6Yu}tTq4%Ax{!&^qS@wwgiEgx)z^;yvyzKW= zpkq@0R$=wHXmfAsCXSQ5a9DKo*`M&?S9{Klrk}0V*aOogdn{6SdYt@g3bj zK=5)Y@&%%QFmyRPko8v2a@(Vy=nx+f@6M@(zs{1PK379B6}Oh;EJ z@j@cx#Hy^RmUF#jMnv3Hhh(cu)lQwu%b?~P=wc<#rCXk%RD_L#fk6+I>%oVk#Rsf+ ztoK;Ze8HFFINSz!Dnvi6GMpDOVIt#`_Q1wB^xQp~invF9=2P6cj~kZ&wFFp3S6>nl zEs@qYR%~I3Lft|xObwVkwMp`B`|nQ_%hG(;hVwj`6C|eT1(fq9oM4bWdI<0m`#U1V92-Sb!A9#6DYIy*Q7hHi{)Q~v*Ecw9 z#JKv;czWavUCiFVC3(B^-&xS*cic_BXp8Q0#iF&LlrfA|JL_&mL~V7&r2)46bEG2U z68+70^rLVBs?)o*eOF8_P8u-N5j&$i5!vym`iM_U|l;ItQ7PqJEX(JdH zpUnt$_Eo#I&xt;vw0gLhXL*Z-EwZDzyd7i{g|TC7B@VBg4DVbV*_9ojVE>x)Wg`Nz zxISlNv6xxf4ZMl%l0bgpO5OBSV@64g#g0)n5j_K(z){y*BJd5-PV= zZY~2d)+DDhFR3rwTB?THcOp{@*fK3yQM9R*g<4( zw%BO(-tHMwWHD-h8b)6)J90tK^S!DTy4XV2dry-Oi&R5aa_?-w6j|6@hX}}W-IoBN z%u(vBh1Fw#>Dl_b;hAW-9r=i|p~dKe2KmKG%4v49v~rx@3T2Z2-Mdnc-=P!og#vdg z_{U-PpSGP*hn7K=41_lJh?#v}@S~VhvCe$+FywHJL`XV<{#W-cp1kX0T< zZ02RRJf8J-%<`^zWZMjR?udz%2w`(LU1pk9(}hqM+0_DJ&u8pE>-LfC5c*+kN1+~8 zUp2J26Cu;8brCs63PXoMqW}}*p@UdS>yaVf;tMUG3SQ9lmer0h8Si8a`vAa5O*`{a zHI>ZnWbsVd6Cn|zl*BI>>iOGk%<5c!ATIhrHr6V5iwfz0oBGeffc9@v6H(Ib@+S}CC5?o00 zUI!38=vaXNBRwT0axpP8bFA01OgadiSZ|D)3QBEZ>%89CmNEab1 z31q~6c7E?)8WB-z{JJSuaeDm~oG!tZbJLFHO!0uSy(eT`jOti}I^;qDfzc|IXw6du z$qXAtlp)4~Wj_qvj#D;m{5cUj)2G#SVjZ~=6kIF+&87AXk{+e>x5A-hEGhOj;DJY6 z$TrQ>57kSQ^VrXxr{*Tm+DBYB1@gxCFt;AQc|}zIb9qAfhL>dt1>bSo{<;25jH?DED2B9r1GntqSmBi~40#?)ZZ@YC1X6 zj50V?#>=gfugy$0(5+~pN8e=${D(BoTl8Z$@HNJ960VM+aWt5q&i&L4WMHsZNr3vZ zh}ZiY^Auj9+m&^ z1C7yx_u^9ipUe^0G#7*7mlf?YO`}Ud&l&)Voxurt z7&@(urW$ddG$w+{Zypj$H6FFhp0-(3!k*teRpw*pk$6SD?i>K2_e~OF%D2n6o;D?| zE+FvKSB^GzqJH^zexWn1`818pI7PH2Q{OYYV^KAHz()J?ZK`RTu&Ue2j}x4lE->;+ z5x8pF{LX(Zpc@*#;pt3z{}w>Rd{amd-ssi8De!e>TLEqo-#n#5O#H3&&Jpk&*(!%e zeFO)U2SW_L-!Oyb8r{U_rEYBht^dI1#V0)S+?4Q2J^1H8en>*zDk&DFZ=oh{Ib#1y z^WDC?If}9B8+eLDl##WYl99LoVboBS_DPGP5S(jcMdZM*iCtpL^x&r8Eg+ zM}BLzkoD@q9HJe;9z6T6R=ad9BUFQV9OAlP3u&VHD2&Jd&cW&gzS^kSeiIvbQzNI- zzi*YsW!npEZJ~obQz>;MkP@>s#_~PRwhw3}C`N)TNOQ8tI4E`|`wyP1v$v~I064?z532snR0=2Fu=;J7g=5`4|pV!uy>TSq+6f; zepB-aD54TjX^P32;}Q&cMQp;s)ff}lC8Z7~9yB*U^%=2etoULB7I@1; zPr?O4sx<#5sHo)+G1-TX3Qj?i*;;?6wlR>j`uu2psr(7qka(!%{c5!klk?E~te+}e zZwuFs+`~7l)JvIttK0Pd%gssqJY1V$_!U#v^Ch3&QkB~ee~oWU&grPLetMk6_oKE? zFvOk+#TWp(e@d{*zzg{jb;9|hVFarHgR!v8Rz`fHCYMhvAQ)B=Mrsr4s{($DQm!`U z=$p~39vYU5u+kkRBpF0LR;eGLsU}ymm^5}2i~Ns(d~pxyM!;$FQ&YjBNcsQZ+sFy$ z-v#)F$YfHiVuWw8$h`(b2*P_Cr{F4O!RNt8fO;KZkSm_}dhS_ex=5S_Q=eFamc zh({s^6AP55-ey&x=#|an|FJhFNIps?u_r*k^$jUg4>{Zxq^U91^;>(yLu>klQ4w+B z_c06!mFMai+c4=d?C0r$yS-BTD9h@JCorL=~6iOTnOauVz zfvp4e;p)u7GfKLcJm^eEgYO#io-vD>&V-v{c3pzx5+p|&Me46WDvu{*(;-_=uSJ*< z0yC3jQ9eAbfbPM&K54yhihGvK3GKm4`&+9w0~aS-aoEt~(Lq*a7KgR^uMUwE^ZZ9* zx>22bTtz(30L77H^1{Tu#deI740_hinqH~C!H@idQKhn0h|1ULl+aeAmf(rxQrUy! zg1bC?lmoEQn2l9|VKv5$4Y*_MIXmf#l$9iMxKhPP5$#W(q)x46avFGeI)<=Jmb?>M zzr=f>xuKxT9T+E(8cpdFj}R?PLNGgwrpKMrty7>6@(*kta2-;5SeHjw>dVInKR*Yy z*goV*_P7d-nRj*Qat`jry)*eO<0ibgaIK@wYpT}khSj$OP>a*vsAo6scF0+ky2!zk zPKp6q{QW)QSs98@$LEnAbOHth)46VZalaBkT?&qkEEa=h-gbL lQ7T>SFN%BNtQ&nv%gzPmTmlzllYWYj>FF40!!_-r{s-(B?mhqj literal 0 HcmV?d00001 diff --git a/src/tests/mock/images/kivy/text_images/Z.png b/src/tests/mock/images/kivy/text_images/Z.png new file mode 100644 index 0000000000000000000000000000000000000000..7d1c8e016888f107ae07afa9f570de3945b86ba5 GIT binary patch literal 6166 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
9bJgQ-Ljsc4!hN#4Mp>G*UQYj3!kCc~qfu4eYEW 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 Ulx1aiCjbBd07*qoM6N<$f{jiJrT_o{ literal 0 HcmV?d00001 diff --git a/src/tests/mock/kivy_main.py b/src/tests/mock/kivy_main.py new file mode 100644 index 00000000..79bb413e --- /dev/null +++ b/src/tests/mock/kivy_main.py @@ -0,0 +1,8 @@ +"""Mock kivy app with mock threads.""" +from pybitmessage import state + +if __name__ == '__main__': + state.kivy = True + print("Kivy Loading......") + from bitmessagemock import main + main() diff --git a/src/tests/mock/pybitmessage/__init__.py b/src/tests/mock/pybitmessage/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/tests/mock/pybitmessage/addresses.py b/src/tests/mock/pybitmessage/addresses.py new file mode 100644 index 00000000..cf42bc26 --- /dev/null +++ b/src/tests/mock/pybitmessage/addresses.py @@ -0,0 +1,278 @@ +""" +Operations with addresses +""" +# pylint: disable=redefined-outer-name,inconsistent-return-statements +import hashlib +from binascii import hexlify, unhexlify +from struct import pack, unpack + +# from debug import logger + +ALPHABET = "123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz" + + +def encodeBase58(num, alphabet=ALPHABET): + """Encode a number in Base X + + Args: + num: The number to encode + alphabet: The alphabet to use for encoding + """ + if num == 0: + return alphabet[0] + arr = [] + base = len(alphabet) + while num: + rem = num % base + num = num // base + arr.append(alphabet[rem]) + arr.reverse() + return ''.join(arr) + + +def decodeBase58(string, alphabet=ALPHABET): + """Decode a Base X encoded string into the number + + Args: + string: The encoded string + alphabet: The alphabet to use for encoding + """ + base = len(alphabet) + num = 0 + + try: + for char in string: + num *= base + num += alphabet.index(char) + # ValueError + except: + # character not found (like a space character or a 0) + return 0 + return num + + +class varintEncodeError(Exception): + """Exception class for encoding varint""" + pass + + +class varintDecodeError(Exception): + """Exception class for decoding varint data""" + pass + + +def encodeVarint(integer): + """Convert integer into varint bytes""" + if integer < 0: + raise varintEncodeError('varint cannot be < 0') + if integer < 253: + return pack('>B', integer) + if integer >= 253 and integer < 65536: + return pack('>B', 253) + pack('>H', integer) + if integer >= 65536 and integer < 4294967296: + return pack('>B', 254) + pack('>I', integer) + if integer >= 4294967296 and integer < 18446744073709551616: + return pack('>B', 255) + pack('>Q', integer) + if integer >= 18446744073709551616: + raise varintEncodeError('varint cannot be >= 18446744073709551616') + + +def decodeVarint(data): + """ + Decodes an encoded varint to an integer and returns it. + Per protocol v3, the encoded value must be encoded with + the minimum amount of data possible or else it is malformed. + Returns a tuple: (theEncodedValue, theSizeOfTheVarintInBytes) + """ + if not data: + return (0, 0) + firstByte, = unpack('>B', data[0:1]) + if firstByte < 253: + # encodes 0 to 252 + # the 1 is the length of the varint + return (firstByte, 1) + if firstByte == 253: + # encodes 253 to 65535 + if len(data) < 3: + raise varintDecodeError( + 'The first byte of this varint as an integer is %s' + ' but the total length is only %s. It needs to be' + ' at least 3.' % (firstByte, len(data))) + encodedValue, = unpack('>H', data[1:3]) + if encodedValue < 253: + raise varintDecodeError( + 'This varint does not encode the value with the lowest' + ' possible number of bytes.') + return (encodedValue, 3) + if firstByte == 254: + # encodes 65536 to 4294967295 + if len(data) < 5: + raise varintDecodeError( + 'The first byte of this varint as an integer is %s' + ' but the total length is only %s. It needs to be' + ' at least 5.' % (firstByte, len(data))) + encodedValue, = unpack('>I', data[1:5]) + if encodedValue < 65536: + raise varintDecodeError( + 'This varint does not encode the value with the lowest' + ' possible number of bytes.') + return (encodedValue, 5) + if firstByte == 255: + # encodes 4294967296 to 18446744073709551615 + if len(data) < 9: + raise varintDecodeError( + 'The first byte of this varint as an integer is %s' + ' but the total length is only %s. It needs to be' + ' at least 9.' % (firstByte, len(data))) + encodedValue, = unpack('>Q', data[1:9]) + if encodedValue < 4294967296: + raise varintDecodeError( + 'This varint does not encode the value with the lowest' + ' possible number of bytes.') + return (encodedValue, 9) + + +def calculateInventoryHash(data): + """Calculate inventory hash from object data""" + sha = hashlib.new('sha512') + sha2 = hashlib.new('sha512') + sha.update(data) + sha2.update(sha.digest()) + return sha2.digest()[0:32] + + +def encodeAddress(version, stream, ripe): + """Convert ripe to address""" + if version >= 2 and version < 4: + if len(ripe) != 20: + raise Exception( + 'Programming error in encodeAddress: The length of' + ' a given ripe hash was not 20.' + ) + if ripe[:2] == '\x00\x00': + ripe = ripe[2:] + elif ripe[:1] == '\x00': + ripe = ripe[1:] + elif version == 4: + if len(ripe) != 20: + raise Exception( + 'Programming error in encodeAddress: The length of' + ' a given ripe hash was not 20.') + ripe = ripe.lstrip('\x00'.encode('utf-8')) + + storedBinaryData = encodeVarint(version) + encodeVarint(stream) + ripe + + # Generate the checksum + sha = hashlib.new('sha512') + sha.update(storedBinaryData) + currentHash = sha.digest() + sha = hashlib.new('sha512') + sha.update(currentHash) + checksum = sha.digest()[0:4] + + asInt = int(hexlify(storedBinaryData) + hexlify(checksum), 16) + return 'BM-' + encodeBase58(asInt) + + +def decodeAddress(address): + """ + returns (status, address version number, stream number, + data (almost certainly a ripe hash)) + """ + # pylint: disable=too-many-return-statements,too-many-statements + # pylint: disable=too-many-branches + address = str(address).strip() + + if address[:3] == 'BM-': + integer = decodeBase58(address[3:]) + else: + integer = decodeBase58(address) + if integer == 0: + status = 'invalidcharacters' + return status, 0, 0, '' + # after converting to hex, the string will be prepended + # with a 0x and appended with a L + hexdata = hex(integer)[2:] + + if len(hexdata) % 2 != 0: + hexdata = '0' + hexdata + + data = unhexlify(hexdata) + checksum = data[-4:] + + sha = hashlib.new('sha512') + sha.update(data[:-4]) + currentHash = sha.digest() + sha = hashlib.new('sha512') + sha.update(currentHash) + + if checksum != sha.digest()[0:4]: + status = 'checksumfailed' + return status, 0, 0, '' + + try: + addressVersionNumber, bytesUsedByVersionNumber = decodeVarint(data[:9]) + except varintDecodeError as e: + # logger.error(str(e)) + status = 'varintmalformed' + return status, 0, 0, '' + + if addressVersionNumber > 4: + # logger.error('cannot decode address version numbers this high') + status = 'versiontoohigh' + return status, 0, 0, '' + elif addressVersionNumber == 0: + # logger.error('cannot decode address version numbers of zero.') + status = 'versiontoohigh' + return status, 0, 0, '' + + try: + streamNumber, bytesUsedByStreamNumber = \ + decodeVarint(data[bytesUsedByVersionNumber:]) + except varintDecodeError as e: + # logger.error(str(e)) + status = 'varintmalformed' + return status, 0, 0, '' + + status = 'success' + if addressVersionNumber == 1: + return status, addressVersionNumber, streamNumber, data[-24:-4] + # elif addressVersionNumber == 2 or addressVersionNumber == 3: + elif addressVersionNumber in (2, 3): + embeddedRipeData = \ + data[bytesUsedByVersionNumber + bytesUsedByStreamNumber:-4] + if len(embeddedRipeData) == 19: + return status, addressVersionNumber, streamNumber, \ + '\x00' + embeddedRipeData + elif len(embeddedRipeData) == 20: + return status, addressVersionNumber, streamNumber, \ + embeddedRipeData + elif len(embeddedRipeData) == 18: + return status, addressVersionNumber, streamNumber, \ + '\x00\x00'.encode('utf-8') + embeddedRipeData + elif len(embeddedRipeData) < 18: + return 'ripetooshort', 0, 0, '' + elif len(embeddedRipeData) > 20: + return 'ripetoolong', 0, 0, '' + return 'otherproblem', 0, 0, '' + elif addressVersionNumber == 4: + embeddedRipeData = \ + data[bytesUsedByVersionNumber + bytesUsedByStreamNumber:-4] + if embeddedRipeData[0:1] == '\x00': + # In order to enforce address non-malleability, encoded + # RIPE data must have NULL bytes removed from the front + return 'encodingproblem', 0, 0, '' + elif len(embeddedRipeData) > 20: + return 'ripetoolong', 0, 0, '' + elif len(embeddedRipeData) < 4: + return 'ripetooshort', 0, 0, '' + x00string = '\x00'.encode('utf-8') * (20 - len(embeddedRipeData)) + + return status, addressVersionNumber, streamNumber, \ + x00string + embeddedRipeData + + +def addBMIfNotPresent(address): + """Prepend BM- to an address if it doesn't already have it""" + address = str(address).strip() + return address if address[:3] == 'BM-' else 'BM-' + address diff --git a/src/tests/mock/pybitmessage/baseclass/__init__.py b/src/tests/mock/pybitmessage/baseclass/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/tests/mock/pybitmessage/baseclass/addressbook.py b/src/tests/mock/pybitmessage/baseclass/addressbook.py new file mode 100644 index 00000000..a22893f3 --- /dev/null +++ b/src/tests/mock/pybitmessage/baseclass/addressbook.py @@ -0,0 +1,138 @@ +from pybitmessage.get_platform import platform +from kivy.clock import Clock +from kivy.properties import ( + ListProperty, + StringProperty +) +from kivymd.uix.button import MDRaisedButton +from kivymd.uix.dialog import MDDialog +from kivymd.uix.label import MDLabel +from kivy.uix.screenmanager import Screen + +from pybitmessage import state + +from pybitmessage.baseclass.common import toast +from pybitmessage.baseclass.popup import AddbookDetailPopup + + +class AddressBook(Screen): + """AddressBook Screen class for kivy Ui""" + + queryreturn = ListProperty() + has_refreshed = True + address_label = StringProperty() + address = StringProperty() + + def __init__(self, *args, **kwargs): + """Getting AddressBook Details""" + super(AddressBook, self).__init__(*args, **kwargs) + self.addbook_popup = None + Clock.schedule_once(self.init_ui, 0) + + def init_ui(self, dt=0): + """Clock Schdule for method AddressBook""" + self.loadAddresslist(None, 'All', '') + print(dt) + + def loadAddresslist(self, account, where="", what=""): + """Clock Schdule for method AddressBook""" + if state.searcing_text: + self.ids.scroll_y.scroll_y = 1.0 + where = ['label', 'address'] + what = state.searcing_text + xAddress = '' + self.ids.tag_label.text = '' + if self.queryreturn: + pass + else: + content = MDLabel( + font_style='Caption', + theme_text_color='Primary', + text="No contact found!" if state.searcing_text + else "No contact found yet...... ", + halign='center', + size_hint_y=None, + valign='top') + self.ids.ml.add_widget(content) + + def check_scroll_y(self, instance, somethingelse): + """Load data on scroll""" + if self.ids.scroll_y.scroll_y <= -0.0 and self.has_refreshed: + self.ids.scroll_y.scroll_y = 0.06 + exist_addresses = len(self.ids.ml.children) + + @staticmethod + def refreshes(*args): + """Refresh the Widget""" + pass + + def addBook_detail(self, address, label, instance, *args): + """Addressbook details""" + if instance.state == 'closed': + instance.ids.delete_msg.disabled = True + if instance.open_progress == 0.0: + obj = AddbookDetailPopup() + self.address_label = obj.address_label = label + self.address = obj.address = address + width = .9 if platform == 'android' else .8 + self.addbook_popup = MDDialog( + type="custom", + size_hint=(width, .25), + content_cls=obj, + buttons=[ + MDRaisedButton( + text="Send message to", + on_release=self.send_message_to, + ), + MDRaisedButton( + text="Save", + on_release=self.update_addbook_label, + ), + MDRaisedButton( + text="Cancel", + on_release=self.close_pop, + ), + ], + ) + self.addbook_popup.auto_dismiss = False + self.addbook_popup.open() + else: + instance.ids.delete_msg.disabled = False + + def delete_address(self, address, instance, *args): + """Delete inbox mail from inbox listing""" + self.ids.ml.remove_widget(instance.parent.parent) + if self.ids.ml.children is not None: + self.ids.tag_label.text = '' + toast('Address Deleted') + + def close_pop(self, instance): + """Pop is Canceled""" + self.addbook_popup.dismiss() + toast('Canceled') + + def update_addbook_label(self, instance): + """Updating the label of address book address""" + address_list = [] + stored_labels = [labels[0] for labels in address_list] + add_dict = dict(address_list) + label = str(self.addbook_popup.content_cls.ids.add_label.text) + if label in stored_labels and self.address == add_dict[label]: + stored_labels.remove(label) + if label and label not in stored_labels: + state.kivyapp.root.ids.sc11.ids.ml.clear_widgets() + state.kivyapp.root.ids.sc11.loadAddresslist(None, 'All', '') + self.addbook_popup.dismiss() + toast('Saved') + + def send_message_to(self, instance): + """Method used to fill to_address of composer autofield""" + state.kivyapp.set_navbar_for_composer() + window_obj = state.kivyapp.root.ids + window_obj.sc3.children[1].ids.txt_input.text = self.address + window_obj.sc3.children[1].ids.ti.text = '' + window_obj.sc3.children[1].ids.btn.text = 'Select' + window_obj.sc3.children[1].ids.subject.text = '' + window_obj.sc3.children[1].ids.body.text = '' + window_obj.scr_mngr.current = 'create' + self.addbook_popup.dismiss() diff --git a/src/tests/mock/pybitmessage/baseclass/allmail.py b/src/tests/mock/pybitmessage/baseclass/allmail.py new file mode 100644 index 00000000..e389d871 --- /dev/null +++ b/src/tests/mock/pybitmessage/baseclass/allmail.py @@ -0,0 +1,142 @@ +from functools import partial +from kivy.clock import Clock +from kivy.properties import ( + ListProperty, + StringProperty +) +from kivy.uix.screenmanager import Screen +from kivymd.uix.label import MDLabel + +from pybitmessage import state + +from pybitmessage.baseclass.common import ( + showLimitedCnt, toast, ThemeClsColor, + avatarImageFirstLetter, CutsomSwipeToDeleteItem, + ShowTimeHistoy +) + + +class Allmails(Screen): + """Allmails Screen for kivy Ui""" + + data = ListProperty() + has_refreshed = True + all_mails = ListProperty() + account = StringProperty() + + def __init__(self, *args, **kwargs): + """Method Parsing the address""" + super(Allmails, self).__init__(*args, **kwargs) + if state.association == '': + if state.kivyapp.variable_1: + state.association = state.kivyapp.variable_1[0] + Clock.schedule_once(self.init_ui, 0) + + def init_ui(self, dt=0): + """Clock Schdule for method all mails""" + self.loadMessagelist() + print(dt) + + def loadMessagelist(self): + """Load Inbox, Sent anf Draft list of messages""" + self.account = state.association + self.ids.tag_label.text = '' + if self.all_mails: + pass + else: + self.set_AllmailCnt('0') + content = MDLabel( + font_style='Caption', + theme_text_color='Primary', + text="yet no message for this account!!!!!!!!!!!!!", + halign='center', + size_hint_y=None, + valign='top') + self.ids.ml.add_widget(content) + + def set_AllmailCnt(self, Count): # pylint: disable=no-self-use + """This method is used to set allmails message count""" + allmailCnt_obj = state.kivyapp.root.ids.content_drawer.ids.allmail_cnt + allmailCnt_obj.ids.badge_txt.text = showLimitedCnt(int(Count)) + + def set_mdlist(self): + """This method is used to create mdList for allmaills""" + data_exist = len(self.ids.ml.children) + for item in self.all_mails: + body = item[3].decode() if isinstance(item[3], bytes) else item[3] + subject = item[2].decode() if isinstance(item[2], bytes) else item[2] + message_row = CutsomSwipeToDeleteItem( + text=item[1], + ) + + listItem = message_row.ids.content + secondary_text = (subject[:50] + '........' if len( + subject) >= 50 else ( + subject + ',' + body)[0:50] + '........').replace('\t', '').replace(' ', '') + listItem.secondary_text = secondary_text + listItem.theme_text_color = "Custom" + listItem.text_color = ThemeClsColor + img_latter = state.imageDir + '/text_images/{}.png'.format( + avatarImageFirstLetter(body.strip())) + message_row.ids.avater_img.source = img_latter + listItem.bind(on_release=partial( + self.mail_detail, item[5], item[4], message_row)) + message_row.ids.time_tag.text = str(ShowTimeHistoy(item[7])) + message_row.ids.chip_tag.text = item[4] + message_row.ids.delete_msg.bind(on_press=partial( + self.swipe_delete, item[5], item[4])) + self.ids.ml.add_widget(message_row) + updated_data = len(self.ids.ml.children) + self.has_refreshed = True if data_exist != updated_data else False + + def check_scroll_y(self, instance, somethingelse): + """Scroll fixed length""" + if self.ids.scroll_y.scroll_y <= -0.00 and self.has_refreshed: + self.ids.scroll_y.scroll_y = .06 + load_more = len(self.ids.ml.children) + + def mail_detail(self, unique_id, folder, instance, *args): + """Load sent and inbox mail details""" + if instance.state == 'closed': + instance.ids.delete_msg.disabled = True + if instance.open_progress == 0.0: + state.detailPageType = folder + state.is_allmail = True + state.mail_id = unique_id + if self.manager: + src_mng_obj = self.manager + else: + src_mng_obj = self.parent.parent + src_mng_obj.screens[11].clear_widgets() + src_mng_obj.current = 'mailDetail' + else: + instance.ids.delete_msg.disabled = False + + def swipe_delete(self, unique_id, folder, instance, *args): + """Delete inbox mail from all mail listing""" + self.ids.ml.remove_widget(instance.parent.parent) + try: + msg_count_objs = self.parent.parent.ids.content_drawer.ids + nav_lay_obj = self.parent.parent.ids + except Exception: + msg_count_objs = self.parent.parent.parent.ids.content_drawer.ids + nav_lay_obj = self.parent.parent.parent.ids + if folder == 'inbox': + msg_count_objs.inbox_cnt.ids.badge_txt.text = showLimitedCnt(int(state.inbox_count) - 1) + state.inbox_count = str(int(state.inbox_count) - 1) + nav_lay_obj.sc1.ids.ml.clear_widgets() + nav_lay_obj.sc1.loadMessagelist(state.association) + else: + msg_count_objs.send_cnt.ids.badge_txt.text = showLimitedCnt(int(state.sent_count) - 1) + state.sent_count = str(int(state.sent_count) - 1) + nav_lay_obj.sc4.ids.ml.clear_widgets() + nav_lay_obj.sc4.loadSent(state.association) + if folder != 'inbox': + msg_count_objs.allmail_cnt.ids.badge_txt.text = showLimitedCnt(int(state.all_count) - 1) + state.all_count = str(int(state.all_count) - 1) + msg_count_objs.trash_cnt.ids.badge_txt.text = showLimitedCnt(int(state.trash_count) + 1) + state.trash_count = str(int(state.trash_count) + 1) + if int(state.all_count) <= 0: + self.ids.tag_label.text = '' + nav_lay_obj.sc17.remove_widget(instance.parent.parent) + toast('Deleted') diff --git a/src/tests/mock/pybitmessage/baseclass/common.py b/src/tests/mock/pybitmessage/baseclass/common.py new file mode 100644 index 00000000..caaec99d --- /dev/null +++ b/src/tests/mock/pybitmessage/baseclass/common.py @@ -0,0 +1,113 @@ +from datetime import datetime +from kivy.core.window import Window +from kivy.metrics import dp +from kivymd.uix.list import ( + ILeftBody, + IRightBodyTouch, +) +from kivy.uix.image import Image +from kivymd.uix.label import MDLabel +from kivymd.toast import kivytoast +from kivymd.uix.card import MDCardSwipe +from kivymd.uix.chip import MDChip +from kivy.properties import ( + NumericProperty, + StringProperty +) +platform = "linux" + + +ThemeClsColor = [0.12, 0.58, 0.95, 1] + + +data_screens = { + "MailDetail": { + "kv_string": "maildetail", + "Factory": "MailDetail()", + "name_screen": "mailDetail", + "object": 0, + "Import": "from pybitmessage.baseclass.maildetail import MailDetail", + }, +} + + +def chipTag(text): + """This method is used for showing chip tag""" + obj = MDChip() + # obj.size_hint = (None, None) + obj.size_hint = (0.16 if platform == "android" else 0.08, None) + obj.text = text + obj.icon = "" + obj.pos_hint = { + "center_x": 0.91 if platform == "android" else 0.94, + "center_y": 0.3 + } + obj.height = dp(18) + obj.text_color = (1, 1, 1, 1) + obj.radius = [8] + return obj + + +def toast(text): + """Method will display the toast message""" + kivytoast.toast(text) + + +def showLimitedCnt(total_msg): + """This method set the total count limit in badge_text""" + return "99+" if total_msg > 99 else str(total_msg) + + +def avatarImageFirstLetter(letter_string): + """This function is used to the first letter for the avatar image""" + try: + if letter_string[0].upper() >= 'A' and letter_string[0].upper() <= 'Z': + img_latter = letter_string[0].upper() + elif int(letter_string[0]) >= 0 and int(letter_string[0]) <= 9: + img_latter = letter_string[0] + else: + img_latter = '!' + except ValueError: + img_latter = '!' + return img_latter if img_latter else '!' + + +def ShowTimeHistoy(act_time): + """This method is used to return the message sent or receive time""" + action_time = datetime.fromtimestamp(int(act_time)) + crnt_date = datetime.now() + duration = crnt_date - action_time + display_data = ( + action_time.strftime("%d/%m/%Y") + if duration.days >= 365 + else action_time.strftime("%I:%M %p").lstrip("0") + if duration.days == 0 and crnt_date.strftime("%d/%m/%Y") == action_time.strftime("%d/%m/%Y") + else action_time.strftime("%d %b") + ) + return display_data + + +# pylint: disable=too-few-public-methods +class AvatarSampleWidget(ILeftBody, Image): + """AvatarSampleWidget class for kivy Ui""" + + +class TimeTagRightSampleWidget(IRightBodyTouch, MDLabel): + """TimeTagRightSampleWidget class for Ui""" + + +class SwipeToDeleteItem(MDCardSwipe): + """Swipe delete class for App UI""" + text = StringProperty() + cla = Window.size[0] / 2 + # cla = 800 + swipe_distance = NumericProperty(cla) + opening_time = NumericProperty(0.5) + + +class CutsomSwipeToDeleteItem(MDCardSwipe): + """Custom swipe delete class for App UI""" + text = StringProperty() + cla = Window.size[0] / 2 + swipe_distance = NumericProperty(cla) + opening_time = NumericProperty(0.5) diff --git a/src/tests/mock/pybitmessage/baseclass/draft.py b/src/tests/mock/pybitmessage/baseclass/draft.py new file mode 100644 index 00000000..1c037722 --- /dev/null +++ b/src/tests/mock/pybitmessage/baseclass/draft.py @@ -0,0 +1,158 @@ +from pybitmessage.bmconfigparser import BMConfigParser +from functools import partial +from pybitmessage.addresses import decodeAddress +from kivy.clock import Clock +from kivy.properties import ( + ListProperty, + StringProperty +) +from kivy.uix.screenmanager import Screen +from kivymd.uix.label import MDLabel + +from pybitmessage import state + +from pybitmessage.baseclass.common import ( + showLimitedCnt, toast, ThemeClsColor, + SwipeToDeleteItem, ShowTimeHistoy +) + + +class Draft(Screen): + """Draft screen class for kivy Ui""" + + data = ListProperty() + account = StringProperty() + queryreturn = ListProperty() + has_refreshed = True + + def __init__(self, *args, **kwargs): + """Method used for storing draft messages""" + super(Draft, self).__init__(*args, **kwargs) + if state.association == '': + if state.kivyapp.variable_1: + state.association = state.kivyapp.variable_1[0] + Clock.schedule_once(self.init_ui, 0) + + def init_ui(self, dt=0): + """Clock Schdule for method draft accounts""" + self.sentaccounts() + print(dt) + + def sentaccounts(self): + """Load draft accounts""" + # self.account = state.association + self.loadDraft() + + def loadDraft(self, where="", what=""): + """Load draft list for Draft messages""" + self.account = state.association + xAddress = 'fromaddress' + self.ids.tag_label.text = '' + if self.queryreturn: + self.ids.tag_label.text = 'Draft' + self.set_draftCnt(state.draft_count) + self.set_mdList() + self.ids.scroll_y.bind(scroll_y=self.check_scroll_y) + else: + self.set_draftCnt('0') + content = MDLabel( + font_style='Caption', + theme_text_color='Primary', + text="yet no message for this account!!!!!!!!!!!!!", + halign='center', + size_hint_y=None, + valign='top') + self.ids.ml.add_widget(content) + + def set_draftCnt(self, Count): # pylint: disable=no-self-use + """This method set the count of draft mails""" + draftCnt_obj = state.kivyapp.root.ids.content_drawer.ids.draft_cnt + draftCnt_obj.ids.badge_txt.text = showLimitedCnt(int(Count)) + + def set_mdList(self): + """This method is used to create mdlist""" + data = [] + total_draft_msg = len(self.ids.ml.children) + for mail in self.queryreturn: + third_text = mail[3].replace('\n', ' ') + data.append({ + 'text': mail[1].strip(), + 'secondary_text': mail[2][:10] + '...........' if len( + mail[2]) > 10 else mail[2] + '\n' + " " + ( + third_text[:25] + '...!') if len( + third_text) > 25 else third_text, + 'ackdata': mail[5], 'senttime': mail[6]}) + for item in data: + message_row = SwipeToDeleteItem( + text='Draft', + ) + listItem = message_row.ids.content + listItem.secondary_text = item["text"] + listItem.theme_text_color = "Custom" + listItem.text_color = ThemeClsColor + message_row.ids.avater_img.source = state.imageDir + '/avatar.png' + listItem.bind(on_release=partial( + self.draft_detail, item['ackdata'], message_row)) + message_row.ids.time_tag.text = str(ShowTimeHistoy(item['senttime'])) + message_row.ids.delete_msg.bind(on_press=partial(self.delete_draft, item['ackdata'])) + self.ids.ml.add_widget(message_row) + updated_msg = len(self.ids.ml.children) + self.has_refreshed = True if total_draft_msg != updated_msg else False + + def check_scroll_y(self, instance, somethingelse): + """Load data on scroll""" + if self.ids.scroll_y.scroll_y <= -0.0 and self.has_refreshed: + self.ids.scroll_y.scroll_y = 0.06 + total_draft_msg = len(self.ids.ml.children) + + def draft_detail(self, ackdata, instance, *args): + """Show draft Details""" + if instance.state == 'closed': + instance.ids.delete_msg.disabled = True + if instance.open_progress == 0.0: + state.detailPageType = 'draft' + state.mail_id = ackdata + if self.manager: + src_mng_obj = self.manager + else: + src_mng_obj = self.parent.parent + src_mng_obj.screens[11].clear_widgets() + # src_mng_obj.screens[11].add_widget(MailDetail()) + src_mng_obj.current = 'mailDetail' + else: + instance.ids.delete_msg.disabled = False + + def delete_draft(self, data_index, instance, *args): + """Delete draft message permanently""" + if int(state.draft_count) > 0: + state.draft_count = str(int(state.draft_count) - 1) + self.set_draftCnt(state.draft_count) + if int(state.draft_count) <= 0: + # self.ids.identi_tag.children[0].text = '' + self.ids.tag_label.text = '' + self.ids.ml.remove_widget(instance.parent.parent) + toast('Deleted') + + @staticmethod + def draft_msg(src_object): + """Save draft mails""" + composer_object = state.kivyapp.root.ids.sc3.children[1].ids + fromAddress = str(composer_object.ti.text) + toAddress = str(composer_object.txt_input.text) + subject = str(composer_object.subject.text) + message = str(composer_object.body.text) + encoding = 3 + sendMessageToPeople = True + if sendMessageToPeople: + streamNumber, ripe = decodeAddress(toAddress)[2:] + from pybitmessage.addresses import addBMIfNotPresent + toAddress = addBMIfNotPresent(toAddress) + stealthLevel = BMConfigParser().safeGetInt( + 'bitmessagesettings', 'ackstealthlevel') + state.msg_counter_objs = src_object.children[2].children[0].ids + state.draft_count = str(int(state.draft_count) + 1) \ + if state.association == fromAddress else state.draft_count + src_object.ids.sc16.clear_widgets() + src_object.ids.sc16.add_widget(Draft()) + toast('Save draft') + return diff --git a/src/tests/mock/pybitmessage/baseclass/inbox.py b/src/tests/mock/pybitmessage/baseclass/inbox.py new file mode 100644 index 00000000..bbfe5abd --- /dev/null +++ b/src/tests/mock/pybitmessage/baseclass/inbox.py @@ -0,0 +1,77 @@ +from kivy.clock import Clock +from kivy.properties import ( + ListProperty, + StringProperty +) +from kivy.uix.screenmanager import Screen +from kivymd.uix.label import MDLabel + +from pybitmessage import state + +from pybitmessage.baseclass.common import showLimitedCnt + + +class Inbox(Screen): + """Inbox Screen class for kivy Ui""" + + queryreturn = ListProperty() + has_refreshed = True + account = StringProperty() + + def __init__(self, *args, **kwargs): + """Method Parsing the address""" + super(Inbox, self).__init__(*args, **kwargs) + Clock.schedule_once(self.init_ui, 0) + + @staticmethod + def set_defaultAddress(): + """This method set's default address""" + if state.association == "": + if state.kivyapp.variable_1: + state.association = state.kivyapp.variable_1[0] + + def init_ui(self, dt=0): + """Clock schdule for method inbox accounts""" + self.loadMessagelist() + + def loadMessagelist(self, where="", what=""): + """Load Inbox list for Inbox messages""" + self.set_defaultAddress() + self.account = state.association + if state.searcing_text: + self.ids.scroll_y.scroll_y = 1.0 + where = ["subject", "message"] + what = state.searcing_text + xAddress = "toaddress" + data = [] + self.ids.tag_label.text = "" + if self.queryreturn: + pass + else: + self.set_inboxCount("0") + content = MDLabel( + font_style="Caption", + theme_text_color="Primary", + text="No message found!" + if state.searcing_text + else "yet no message for this account!!!!!!!!!!!!!", + halign="center", + size_hint_y=None, + valign="top" + ) + self.ids.ml.add_widget(content) + + def set_inboxCount(self, msgCnt): # pylint: disable=no-self-use + """This method is used to sent inbox message count""" + src_mng_obj = state.kivyapp.root.ids.content_drawer.ids + src_mng_obj.inbox_cnt.ids.badge_txt.text = showLimitedCnt(int(msgCnt)) + state.kivyapp.get_sent_count() + state.all_count = str( + int(state.sent_count) + int(state.inbox_count)) + src_mng_obj.allmail_cnt.ids.badge_txt.text = showLimitedCnt(int(state.all_count)) + + def check_scroll_y(self, instance, somethingelse): + """Loads data on scroll""" + if self.ids.scroll_y.scroll_y <= -0.0 and self.has_refreshed: + self.ids.scroll_y.scroll_y = 0.06 + total_message = len(self.ids.ml.children) diff --git a/src/tests/mock/pybitmessage/baseclass/login.py b/src/tests/mock/pybitmessage/baseclass/login.py new file mode 100644 index 00000000..d082b739 --- /dev/null +++ b/src/tests/mock/pybitmessage/baseclass/login.py @@ -0,0 +1,109 @@ +from pybitmessage import queues +from pybitmessage.bmconfigparser import BMConfigParser +from pybitmessage import state +from pybitmessage.baseclass.common import toast + +from kivy.clock import Clock +from kivy.properties import StringProperty, BooleanProperty +from kivy.uix.boxlayout import BoxLayout +from kivymd.uix.behaviors.elevation import RectangularElevationBehavior +from kivy.uix.screenmanager import Screen + + +class Login(Screen): + """Login Screeen class for kivy Ui""" + # pylint: disable=too-few-public-methods + log_text1 = ( + 'You may generate addresses by using either random numbers' + ' or by using a passphrase If you use a passphrase, the address' + ' is called a deterministic; address The Random Number option is' + ' selected by default but deterministic addresses have several pros' + ' and cons:') + log_text2 = ('If talk about pros You can recreate your addresses on any computer' + ' from memory, You need-not worry about backing up your keys.dat file' + ' as long as you can remember your passphrase and aside talk about cons' + ' You must remember (or write down) your You must remember the address' + ' version number and the stream number along with your passphrase If you' + ' choose a weak passphrase and someone on the Internet can brute-force it,' + ' they can read your messages and send messages as you') + + +class Random(Screen): + """Random Screen class for Ui""" + + is_active = BooleanProperty(False) + checked = StringProperty("") + + def generateaddress(self): + """Method for Address Generator""" + # entered_label = str(self.ids.lab.text).strip() + entered_label = str(self.ids.add_random_bx.children[0].ids.lab.text).strip() + if not entered_label: + self.ids.add_random_bx.children[0].ids.lab.focus = True + streamNumberForAddress = 1 + eighteenByteRipe = False + nonceTrialsPerByte = 1000 + payloadLengthExtraBytes = 1000 + lables = [BMConfigParser().get(obj, 'label') + for obj in BMConfigParser().addresses()] + if entered_label and entered_label not in lables: + toast('Address Creating...') + queues.addressGeneratorQueue.put(( + 'createRandomAddress', 4, streamNumberForAddress, entered_label, 1, + "", eighteenByteRipe, nonceTrialsPerByte, + payloadLengthExtraBytes)) + self.parent.parent.ids.toolbar.opacity = 1 + self.parent.parent.ids.toolbar.disabled = False + state.kivyapp.loadMyAddressScreen(True) + self.manager.current = 'myaddress' + Clock.schedule_once(self.address_created_callback, 6) + + def address_created_callback(self, dt=0): # pylint: disable=unused-argument + """New address created""" + state.kivyapp.loadMyAddressScreen(False) + state.kivyapp.root.ids.sc10.ids.ml.clear_widgets() + state.kivyapp.root.ids.sc10.is_add_created = True + state.kivyapp.root.ids.sc10.init_ui() + self.reset_address_spinner() + toast('New address created') + + def reset_address_spinner(self): + """reseting spinner address and UI""" + addresses = [addr for addr in BMConfigParser().addresses() + if BMConfigParser().get(str(addr), 'enabled') == 'true'] + self.manager.parent.ids.content_drawer.ids.btn.values = [] + self.manager.parent.ids.sc3.children[1].ids.btn.values = [] + self.manager.parent.ids.content_drawer.ids.btn.values = addresses + self.manager.parent.ids.sc3.children[1].ids.btn.values = addresses + + @staticmethod + def add_validation(instance): + """Checking validation at address creation time""" + entered_label = str(instance.text.strip()) + lables = [BMConfigParser().get(obj, 'label') + for obj in BMConfigParser().addresses()] + if entered_label in lables: + instance.error = True + instance.helper_text = 'it is already exist you'\ + ' can try this Ex. ( {0}_1, {0}_2 )'.format( + entered_label) + elif entered_label: + instance.error = False + else: + instance.error = False + instance.helper_text = 'This field is required' + + def reset_address_label(self): + """Resetting address labels""" + if not self.ids.add_random_bx.children: + self.ids.add_random_bx.add_widget(RandomBoxlayout()) + + +class InfoLayout(BoxLayout, RectangularElevationBehavior): + """InfoLayout class for kivy Ui""" + # pylint: disable=too-few-public-methods + + +class RandomBoxlayout(BoxLayout): + """RandomBoxlayout class for BoxLayout behaviour""" + # pylint: disable=too-few-public-methods diff --git a/src/tests/mock/pybitmessage/baseclass/maildetail.py b/src/tests/mock/pybitmessage/baseclass/maildetail.py new file mode 100644 index 00000000..81e62cc8 --- /dev/null +++ b/src/tests/mock/pybitmessage/baseclass/maildetail.py @@ -0,0 +1,223 @@ +from datetime import datetime + +from kivy.core.clipboard import Clipboard +from kivy.clock import Clock +from kivy.properties import ( + StringProperty, + NumericProperty +) +from kivy.factory import Factory + +from kivymd.uix.button import MDFlatButton, MDIconButton +from kivymd.uix.dialog import MDDialog +from kivymd.uix.list import ( + OneLineListItem, + IRightBodyTouch +) +from kivy.uix.screenmanager import Screen + +from pybitmessage import state + +from .common import ( + toast, avatarImageFirstLetter, ShowTimeHistoy +) +from .popup import SenderDetailPopup +platform = "linux" + + +class OneLineListTitle(OneLineListItem): + """OneLineListTitle class for kivy Ui""" + __events__ = ('on_long_press', ) + long_press_time = NumericProperty(1) + + def on_state(self, instance, value): + """On state""" + if value == 'down': + lpt = self.long_press_time + self._clockev = Clock.schedule_once(self._do_long_press, lpt) + else: + self._clockev.cancel() + + def _do_long_press(self, dt): + """Do long press""" + self.dispatch('on_long_press') + + def on_long_press(self, *largs): + """On long press""" + self.copymessageTitle(self.text) + + def copymessageTitle(self, title_text): + """this method is for displaying dialog box""" + self.title_text = title_text + width = .8 if platform == 'android' else .55 + self.dialog_box = MDDialog( + text=title_text, + size_hint=(width, .25), + buttons=[ + MDFlatButton( + text="Copy", on_release=self.callback_for_copy_title + ), + MDFlatButton( + text="Cancel", on_release=self.callback_for_copy_title, + ), + ],) + self.dialog_box.open() + + def callback_for_copy_title(self, instance): + """Callback of alert box""" + if instance.text == 'Copy': + Clipboard.copy(self.title_text) + self.dialog_box.dismiss() + toast(instance.text) + + +class IconRightSampleWidget(IRightBodyTouch, MDIconButton): + """IconRightSampleWidget class for kivy Ui""" + + +class MailDetail(Screen): # pylint: disable=too-many-instance-attributes + """MailDetail Screen class for kivy Ui""" + + to_addr = StringProperty() + from_addr = StringProperty() + subject = StringProperty() + message = StringProperty() + status = StringProperty() + page_type = StringProperty() + time_tag = StringProperty() + avatarImg = StringProperty() + + def __init__(self, *args, **kwargs): + """Mail Details method""" + super(MailDetail, self).__init__(*args, **kwargs) + Clock.schedule_once(self.init_ui, 0) + + def init_ui(self, dt=0): + """Clock Schdule for method MailDetail mails""" + self.page_type = state.detailPageType if state.detailPageType else '' + try: + if state.detailPageType == 'sent' or state.detailPageType == 'draft': + data = [] + state.status = self + state.ackdata = data[0][5] + self.assign_mail_details(data) + state.kivyapp.set_mail_detail_header() + elif state.detailPageType == 'inbox': + data = [] + self.assign_mail_details(data) + state.kivyapp.set_mail_detail_header() + except Exception as e: + print('Something wents wrong!!') + + def assign_mail_details(self, data): + """Assigning mail details""" + subject = data[0][2].decode() if isinstance(data[0][2], bytes) else data[0][2] + body = data[0][3].decode() if isinstance(data[0][2], bytes) else data[0][3] + self.to_addr = data[0][0] if len(data[0][0]) > 4 else ' ' + self.from_addr = data[0][1] + + self.subject = subject.capitalize( + ) if subject.capitalize() else '(no subject)' + self.message = body + if len(data[0]) == 7: + self.status = data[0][4] + self.time_tag = ShowTimeHistoy(data[0][4]) if state.detailPageType == 'inbox' else ShowTimeHistoy(data[0][6]) + self.avatarImg = state.imageDir + '/avatar.png' if state.detailPageType == 'draft' else ( + state.imageDir + '/text_images/{0}.png'.format(avatarImageFirstLetter(self.subject.strip()))) + self.timeinseconds = data[0][4] if state.detailPageType == 'inbox' else data[0][6] + + def delete_mail(self): + """Method for mail delete""" + msg_count_objs = state.kivyapp.root.ids.content_drawer.ids + state.searcing_text = '' + self.children[0].children[0].active = True + if state.detailPageType == 'sent': + state.kivyapp.root.ids.sc4.ids.sent_search.ids.search_field.text = '' + msg_count_objs.send_cnt.ids.badge_txt.text = str(int(state.sent_count) - 1) + state.sent_count = str(int(state.sent_count) - 1) + self.parent.screens[2].ids.ml.clear_widgets() + self.parent.screens[2].loadSent(state.association) + elif state.detailPageType == 'inbox': + state.kivyapp.root.ids.sc1.ids.inbox_search.ids.search_field.text = '' + msg_count_objs.inbox_cnt.ids.badge_txt.text = str( + int(state.inbox_count) - 1) + state.inbox_count = str(int(state.inbox_count) - 1) + self.parent.screens[0].ids.ml.clear_widgets() + self.parent.screens[0].loadMessagelist(state.association) + + elif state.detailPageType == 'draft': + msg_count_objs.draft_cnt.ids.badge_txt.text = str( + int(state.draft_count) - 1) + state.draft_count = str(int(state.draft_count) - 1) + self.parent.screens[13].clear_widgets() + self.parent.screens[13].add_widget(Factory.Draft()) + + if state.detailPageType != 'draft': + msg_count_objs.trash_cnt.ids.badge_txt.text = str( + int(state.trash_count) + 1) + msg_count_objs.allmail_cnt.ids.badge_txt.text = str( + int(state.all_count) - 1) + state.trash_count = str(int(state.trash_count) + 1) + state.all_count = str(int(state.all_count) - 1) if int(state.all_count) else '0' + self.parent.screens[3].clear_widgets() + self.parent.screens[3].add_widget(Factory.Trash()) + self.parent.screens[14].clear_widgets() + self.parent.screens[14].add_widget(Factory.Allmails()) + Clock.schedule_once(self.callback_for_delete, 4) + + def callback_for_delete(self, dt=0): + """Delete method from allmails""" + if state.detailPageType: + self.children[0].children[0].active = False + state.kivyapp.set_common_header() + self.parent.current = 'allmails' \ + if state.is_allmail else state.detailPageType + state.detailPageType = '' + toast('Deleted') + + def inbox_reply(self): + """Reply inbox messages""" + state.in_composer = True + data = [] + composer_obj = self.parent.screens[1].children[1].ids + composer_obj.ti.text = data[0][0] + composer_obj.btn.text = data[0][0] + composer_obj.txt_input.text = data[0][1] + split_subject = data[0][2].split('Re:', 1) + composer_obj.subject.text = 'Re: ' + (split_subject[1] if len(split_subject) > 1 else split_subject[0]) + time_obj = datetime.fromtimestamp(int(data[0][4])) + time_tag = time_obj.strftime("%d %b %Y, %I:%M %p") + sender_name = data[0][1] + composer_obj.body.text = ( + '\n\n --------------On ' + time_tag + ', ' + sender_name + ' wrote:--------------\n' + data[0][3]) + composer_obj.body.focus = True + composer_obj.body.cursor = (0, 0) + state.kivyapp.root.ids.sc3.children[1].ids.rv.data = '' + self.parent.current = 'create' + state.kivyapp.set_navbar_for_composer() + + def write_msg(self, navApp): + """Write on draft mail""" + state.send_draft_mail = state.mail_id + data = [] + composer_ids = ( + self.parent.parent.ids.sc3.children[1].ids) + composer_ids.ti.text = data[0][1] + composer_ids.btn.text = data[0][1] + composer_ids.txt_input.text = data[0][0] + composer_ids.subject.text = data[0][2] if data[0][2] != '(no subject)' else '' + composer_ids.body.text = data[0][3] + self.parent.current = 'create' + navApp.set_navbar_for_composer() + + def detailedPopup(self): + """Detailed popup""" + obj = SenderDetailPopup() + obj.open() + arg = (self.to_addr, self.from_addr, self.timeinseconds) + obj.assignDetail(*arg) + + @staticmethod + def callback_for_menu_items(text_item, *arg): + """Callback of alert box""" + toast(text_item) diff --git a/src/tests/mock/pybitmessage/baseclass/msg_composer.py b/src/tests/mock/pybitmessage/baseclass/msg_composer.py new file mode 100644 index 00000000..f047fb7e --- /dev/null +++ b/src/tests/mock/pybitmessage/baseclass/msg_composer.py @@ -0,0 +1,258 @@ +from pybitmessage.get_platform import platform +from pybitmessage.bmconfigparser import BMConfigParser +from kivy.clock import Clock +from kivy.core.window import Window +from kivy.factory import Factory +from kivy.properties import ( + BooleanProperty, + ListProperty, + NumericProperty, + ObjectProperty, +) +from kivy.uix.behaviors import FocusBehavior +from kivy.uix.boxlayout import BoxLayout +from kivymd.uix.button import MDFlatButton +from kivymd.uix.dialog import MDDialog +from kivy.uix.label import Label +from kivy.uix.recycleview import RecycleView +from kivy.uix.recycleboxlayout import RecycleBoxLayout +from kivy.uix.recycleview.layout import LayoutSelectionBehavior +from kivy.uix.recycleview.views import RecycleDataViewBehavior +from kivy.uix.screenmanager import Screen +from pybitmessage import state +from pybitmessage import queues + +from pybitmessage.addresses import decodeAddress, addBMIfNotPresent +from pybitmessage.baseclass.common import ( + toast, showLimitedCnt +) +from kivymd.uix.textfield import MDTextField + + +class Create(Screen): + """Creates Screen class for kivy Ui""" + + def __init__(self, **kwargs): + """Getting Labels and address from addressbook""" + super(Create, self).__init__(**kwargs) + Window.softinput_mode = "below_target" + widget_1 = DropDownWidget() + widget_1.ids.txt_input.word_list = [] + widget_1.ids.txt_input.starting_no = 2 + self.add_widget(widget_1) + self.children[0].ids.id_scroll.bind(scroll_y=self.check_scroll_y) + + def check_scroll_y(self, instance, somethingelse): # pylint: disable=unused-argument + """show data on scroll down""" + if self.children[1].ids.btn.is_open: + self.children[1].ids.btn.is_open = False + + +class RV(RecycleView): + """Recycling View class for kivy Ui""" + + def __init__(self, **kwargs): + """Recycling Method""" + super(RV, self).__init__(**kwargs) + + +class SelectableRecycleBoxLayout( + FocusBehavior, LayoutSelectionBehavior, RecycleBoxLayout +): + """Adds selection and focus behaviour to the view""" + + # pylint: disable = duplicate-bases + + +class DropDownWidget(BoxLayout): + """DropDownWidget class for kivy Ui""" + + # pylint: disable=too-many-statements + + txt_input = ObjectProperty() + rv = ObjectProperty() + + def send(self, navApp): + """Send message from one address to another""" + fromAddress = self.ids.ti.text.strip() + toAddress = self.ids.txt_input.text.strip() + subject = self.ids.subject.text.strip() + message = self.ids.body.text.strip() + print("message: ", self.ids.body.text) + if toAddress != "" and subject and message: + status, addressVersionNumber, streamNumber, ripe = decodeAddress( + toAddress + ) + if status == "success": + navApp.root.ids.sc3.children[0].active = True + if state.detailPageType == "draft" and state.send_draft_mail: + self.parent.parent.screens[13].clear_widgets() + self.parent.parent.screens[13].add_widget(Factory.Draft()) + else: + if (addressVersionNumber > 4) or ( + addressVersionNumber <= 1): + print( + "addressVersionNumber > 4" + " or addressVersionNumber <= 1") + if streamNumber > 1 or streamNumber == 0: + print("streamNumber > 1 or streamNumber == 0") + stealthLevel = BMConfigParser().safeGetInt( + 'bitmessagesettings', 'ackstealthlevel') + + state.check_sent_acc = fromAddress + if state.detailPageType == 'draft' \ + and state.send_draft_mail: + state.draft_count = str(int(state.draft_count) - 1) + state.detailPageType = '' + state.send_draft_mail = None + self.parent.parent.parent.ids.sc4.update_sent_messagelist() + allmailCnt_obj = state.kivyapp.root.ids.content_drawer.ids.allmail_cnt + allmailCnt_obj.ids.badge_txt.text = showLimitedCnt(int(state.all_count) + 1) + state.all_count = str(int(state.all_count) + 1) + Clock.schedule_once(self.callback_for_msgsend, 3) + queues.workerQueue.put(('sendmessage', addBMIfNotPresent(toAddress))) + print("sqlExecute successfully #######################") + state.in_composer = True + return + else: + msg = 'Enter a valid recipients address' + elif not toAddress: + msg = 'Please fill the form completely' + else: + msg = 'Please fill the form completely' + self.address_error_message(msg) + + @staticmethod + def callback_for_msgsend(dt=0): # pylint: disable=unused-argument + """Callback method for messagesend""" + state.kivyapp.root.ids.sc3.children[0].active = False + state.in_sent_method = True + state.kivyapp.back_press() + toast("sent") + + @staticmethod + def address_error_message(msg): + """Generates error message""" + width = .8 if platform == 'android' else .55 + dialog_box = MDDialog( + text=msg, + size_hint=(width, .25), + buttons=[ + MDFlatButton( + text="Ok", on_release=lambda x: callback_for_menu_items("Ok") + ), + ],) + dialog_box.open() + + def callback_for_menu_items(text_item, *arg): + """Callback of alert box""" + dialog_box.dismiss() + toast(text_item) + + def reset_composer(self): + """Method will reset composer""" + self.ids.ti.text = "" + self.ids.btn.text = "Select" + self.ids.txt_input.text = "" + self.ids.subject.text = "" + self.ids.body.text = "" + toast("Reset message") + + def auto_fill_fromaddr(self): + """Fill the text automatically From Address""" + self.ids.ti.text = self.ids.btn.text + self.ids.ti.focus = True + + def is_camara_attached(self): + """Checks the camera availability in device""" + self.parent.parent.parent.ids.sc23.check_camera() + is_available = self.parent.parent.parent.ids.sc23.camera_avaialbe + return is_available + + @staticmethod + def camera_alert(): + """Show camera availability alert message""" + width = .8 if platform == 'android' else .55 + altet_txt = 'Currently this feature is not avaialbe!'if platform == 'android' else 'Camera is not available!' + dialog_box = MDDialog( + text=altet_txt, + size_hint=(width, .25), + buttons=[ + MDFlatButton( + text="Ok", on_release=lambda x: callback_for_menu_items("Ok") + ), + ], + ) + dialog_box.open() + + def callback_for_menu_items(text_item, *arg): + """Callback of alert box""" + dialog_box.dismiss() + toast(text_item) + + +class MyTextInput(MDTextField): + """MyTextInput class for kivy Ui""" + + txt_input = ObjectProperty() + flt_list = ObjectProperty() + word_list = ListProperty() + starting_no = NumericProperty(3) + suggestion_text = '' + + def __init__(self, **kwargs): + """Getting Text Input.""" + super(MyTextInput, self).__init__(**kwargs) + self.__lineBreak__ = 0 + + def on_text(self, instance, value): # pylint: disable=unused-argument + """Find all the occurrence of the word""" + self.parent.parent.parent.parent.parent.ids.rv.data = [] + matches = [self.word_list[i] for i in range( + len(self.word_list)) if self.word_list[ + i][:self.starting_no] == value[:self.starting_no]] + display_data = [] + for i in matches: + display_data.append({'text': i}) + self.parent.parent.parent.parent.parent.ids.rv.data = display_data + if len(matches) <= 10: + self.parent.height = (250 + (len(matches) * 20)) + else: + self.parent.height = 400 + + def keyboard_on_key_down(self, window, keycode, text, modifiers): + """Keyboard on key Down""" + if self.suggestion_text and keycode[1] == 'tab': + self.insert_text(self.suggestion_text + ' ') + return True + return super(MyTextInput, self).keyboard_on_key_down( + window, keycode, text, modifiers) + + +class SelectableLabel(RecycleDataViewBehavior, Label): + """Add selection support to the Label""" + + index = None + selected = BooleanProperty(False) + selectable = BooleanProperty(True) + + def refresh_view_attrs(self, rv, index, data): + """Catch and handle the view changes""" + self.index = index + return super(SelectableLabel, self).refresh_view_attrs(rv, index, data) + + def on_touch_down(self, touch): # pylint: disable=inconsistent-return-statements + """Add selection on touch down""" + if super(SelectableLabel, self).on_touch_down(touch): + return True + if self.collide_point(*touch.pos) and self.selectable: + return self.parent.select_with_touch(self.index, touch) + + def apply_selection(self, rv, index, is_selected): + """Respond to the selection of items in the view""" + self.selected = is_selected + if is_selected: + print("selection changed to {0}".format(rv.data[index])) + rv.parent.txt_input.text = rv.parent.txt_input.text.replace( + rv.parent.txt_input.text, rv.data[index]["text"] + ) diff --git a/src/tests/mock/pybitmessage/baseclass/myaddress.py b/src/tests/mock/pybitmessage/baseclass/myaddress.py new file mode 100644 index 00000000..2073b951 --- /dev/null +++ b/src/tests/mock/pybitmessage/baseclass/myaddress.py @@ -0,0 +1,221 @@ +from pybitmessage.get_platform import platform +from functools import partial +from pybitmessage.bmconfigparser import BMConfigParser +from kivy.clock import Clock +from kivy.properties import ( + ListProperty, + StringProperty +) +from kivymd.uix.button import MDFlatButton +from kivymd.uix.dialog import MDDialog +from kivymd.uix.label import MDLabel +from kivymd.uix.list import ( + IRightBodyTouch, + TwoLineAvatarIconListItem, +) +from kivymd.uix.selectioncontrol import MDSwitch +from kivy.uix.screenmanager import Screen + +from pybitmessage import state + +from pybitmessage.baseclass.common import ( + avatarImageFirstLetter, AvatarSampleWidget, ThemeClsColor, + toast +) +from pybitmessage.baseclass.popup import MyaddDetailPopup + + +class ToggleBtn(IRightBodyTouch, MDSwitch): + """ToggleBtn class for kivy Ui""" + + +class CustomTwoLineAvatarIconListItem(TwoLineAvatarIconListItem): + """CustomTwoLineAvatarIconListItem class for kivy Ui""" + + +class BadgeText(IRightBodyTouch, MDLabel): + """BadgeText class for kivy Ui""" + + +class MyAddress(Screen): + """MyAddress screen class for kivy Ui""" + + address_label = StringProperty() + text_address = StringProperty() + addresses_list = ListProperty() + has_refreshed = True + is_add_created = False + + def __init__(self, *args, **kwargs): + """Clock schdule for method Myaddress accounts""" + super(MyAddress, self).__init__(*args, **kwargs) + Clock.schedule_once(self.init_ui, 0) + + def init_ui(self, dt=0): + """Clock schdule for method Myaddress accounts""" + # pylint: disable=unnecessary-lambda, deprecated-lambda + self.addresses_list = BMConfigParser().addresses() + if state.searcing_text: + self.ids.refresh_layout.scroll_y = 1.0 + filtered_list = [ + x for x in BMConfigParser().addresses() + if self.filter_address(x) + ] + self.addresses_list = filtered_list + self.addresses_list = [obj for obj in reversed(self.addresses_list)] + self.ids.tag_label.text = '' + if self.addresses_list: + self.ids.tag_label.text = 'My Addresses' + self.has_refreshed = True + self.set_mdList(0, 15) + self.ids.refresh_layout.bind(scroll_y=self.check_scroll_y) + else: + content = MDLabel( + font_style='Caption', + theme_text_color='Primary', + text="No address found!" if state.searcing_text + else "yet no address is created by user!!!!!!!!!!!!!", + halign='center', + size_hint_y=None, + valign='top') + self.ids.ml.add_widget(content) + if not state.searcing_text and not self.is_add_created: + try: + self.manager.current = 'login' + except Exception: + pass + + def set_mdList(self, first_index, last_index): + """Creating the mdlist""" + data = [] + for address in self.addresses_list[first_index:last_index]: + data.append({ + 'text': BMConfigParser().get(address, 'label'), + 'secondary_text': address}) + for item in data: + is_enable = BMConfigParser().get(item['secondary_text'], 'enabled') + meny = CustomTwoLineAvatarIconListItem( + text=item['text'], secondary_text=item['secondary_text'], + theme_text_color='Custom' if is_enable == 'true' else 'Primary', + text_color=ThemeClsColor,) + # meny._txt_right_pad = dp(70) + try: + meny.canvas.children[3].rgba = [0, 0, 0, 0] if is_enable == 'true' else [0.5, 0.5, 0.5, 0.5] + except Exception: + pass + meny.add_widget(AvatarSampleWidget( + source=state.imageDir + '/text_images/{}.png'.format( + avatarImageFirstLetter(item['text'].strip())))) + meny.bind(on_press=partial( + self.myadd_detail, item['secondary_text'], item['text'])) + if state.association == item['secondary_text'] and is_enable == 'true': + badge_obj = BadgeText( + size_hint=(None, None), + size=[90 if platform == 'android' else 50, 60], + text='Active', halign='center', + font_style='Body1', theme_text_color='Custom', + text_color=ThemeClsColor + ) + badge_obj.font_size = '13sp' + meny.add_widget(badge_obj) + else: + meny.add_widget(ToggleBtn(active=True if is_enable == 'true' else False)) + self.ids.ml.add_widget(meny) + + def check_scroll_y(self, instance, somethingelse): + """Load data on scroll down""" + if self.ids.refresh_layout.scroll_y <= -0.0 and self.has_refreshed: + self.ids.refresh_layout.scroll_y = 0.06 + + def myadd_detail(self, fromaddress, label, *args): + """Load myaddresses details""" + if BMConfigParser().get(fromaddress, 'enabled') == 'true': + obj = MyaddDetailPopup() + self.address_label = obj.address_label = label + self.text_address = obj.address = fromaddress + width = .9 if platform == 'android' else .6 + self.myadddetail_popup = MDDialog( + type="custom", + size_hint=(width, .25), + content_cls=obj, + ) + self.myadddetail_popup.auto_dismiss = False + self.myadddetail_popup.open() + else: + width = .8 if platform == 'android' else .55 + dialog_box = MDDialog( + text='Address is not currently active. Please click on Toggle button to active it.', + size_hint=(width, .25), + buttons=[ + MDFlatButton( + text="Ok", on_release=lambda x: callback_for_menu_items("Ok") + ), + ], + ) + dialog_box.open() + + def callback_for_menu_items(text_item, *arg): + """Callback of alert box""" + dialog_box.dismiss() + toast(text_item) + + def refresh_callback(self, *args): + """Method updates the state of application, + While the spinner remains on the screen""" + def refresh_callback(interval): + """Method used for loading the myaddress screen data""" + state.searcing_text = '' + self.ids.search_bar.ids.search_field.text = '' + self.has_refreshed = True + self.ids.ml.clear_widgets() + self.init_ui() + self.ids.refresh_layout.refresh_done() + Clock.schedule_once(self.address_permision_callback, 0) + Clock.schedule_once(refresh_callback, 1) + + @staticmethod + def filter_address(address): + """Method will filter the my address list data""" + if [ + x for x in [ + BMConfigParser().get(address, 'label').lower(), + address.lower() + ] + if (state.searcing_text).lower() in x + ]: + return True + return False + + def disableAddress(self, address, instance): + """This method is use for disabling address""" + BMConfigParser().set(str(address), 'enabled', 'false') + BMConfigParser().save() + instance.parent.parent.theme_text_color = 'Primary' + instance.parent.parent.canvas.children[3].rgba = [0.5, 0.5, 0.5, 0.5] + toast('Address disabled') + Clock.schedule_once(self.address_permision_callback, 0) + + def enableAddress(self, address, instance): + """This method is use for enabling address""" + BMConfigParser().set(address, 'enabled', 'true') + BMConfigParser().save() + instance.parent.parent.theme_text_color = 'Custom' + instance.parent.parent.canvas.children[3].rgba = [0, 0, 0, 0] + toast('Address Enabled') + Clock.schedule_once(self.address_permision_callback, 0) + + def address_permision_callback(self, dt=0): + """callback for enable or disable addresses""" + addresses = [addr for addr in BMConfigParser().addresses() + if BMConfigParser().get(str(addr), 'enabled') == 'true'] + self.parent.parent.ids.content_drawer.ids.btn.values = addresses + self.parent.parent.ids.sc3.children[1].ids.btn.values = addresses + state.kivyapp.variable_1 = addresses + + def toggleAction(self, instance): + """This method is used for enable or disable address""" + addr = instance.parent.parent.secondary_text + if instance.active: + self.enableAddress(addr, instance) + else: + self.disableAddress(addr, instance) diff --git a/src/tests/mock/pybitmessage/baseclass/network.py b/src/tests/mock/pybitmessage/baseclass/network.py new file mode 100644 index 00000000..cbe18504 --- /dev/null +++ b/src/tests/mock/pybitmessage/baseclass/network.py @@ -0,0 +1,27 @@ +from kivy.clock import Clock +from kivy.properties import StringProperty +from kivy.uix.screenmanager import Screen + + +class NetworkStat(Screen): + """NetworkStat class for kivy Ui""" + + text_variable_1 = StringProperty( + '{0}::{1}'.format('Total Connections', '0')) + text_variable_2 = StringProperty( + 'Processed {0} per-to-per messages'.format('0')) + text_variable_3 = StringProperty( + 'Processed {0} brodcast messages'.format('0')) + text_variable_4 = StringProperty( + 'Processed {0} public keys'.format('0')) + text_variable_5 = StringProperty( + 'Processed {0} object to be synced'.format('0')) + + def __init__(self, *args, **kwargs): + """Init method for network stat""" + super(NetworkStat, self).__init__(*args, **kwargs) + Clock.schedule_interval(self.init_ui, 1) + + def init_ui(self, dt=0): + """Clock Schdule for method networkstat screen""" + pass diff --git a/src/tests/mock/pybitmessage/baseclass/payment.py b/src/tests/mock/pybitmessage/baseclass/payment.py new file mode 100644 index 00000000..c286888c --- /dev/null +++ b/src/tests/mock/pybitmessage/baseclass/payment.py @@ -0,0 +1,43 @@ +''' + This is for payment related part +''' +from kivy.uix.boxlayout import BoxLayout +from kivymd.uix.behaviors.elevation import RectangularElevationBehavior +from kivy.uix.screenmanager import Screen + +from kivymd.uix.label import MDLabel +from kivymd.uix.list import ( + IRightBodyTouch, + OneLineAvatarIconListItem +) + + +class Payment(Screen): + """Payment Screen class for kivy Ui""" + + @staticmethod + def create_hidden_payment_address(): + """This is basically used for creating hidden address used in payment for purchasing credits""" + pass + + +class Category(BoxLayout, RectangularElevationBehavior): + """Category class for kivy Ui""" + elevation_normal = .01 + + +class ProductLayout(BoxLayout, RectangularElevationBehavior): + """ProductLayout class for kivy Ui""" + elevation_normal = .01 + + +class PaymentMethodLayout(BoxLayout): + """PaymentMethodLayout class for kivy Ui""" + + +class ListItemWithLabel(OneLineAvatarIconListItem): + """ListItemWithLabel class for kivy Ui""" + + +class RightLabel(IRightBodyTouch, MDLabel): + """RightLabel class for kivy Ui""" diff --git a/src/tests/mock/pybitmessage/baseclass/popup.py b/src/tests/mock/pybitmessage/baseclass/popup.py new file mode 100644 index 00000000..eba6b494 --- /dev/null +++ b/src/tests/mock/pybitmessage/baseclass/popup.py @@ -0,0 +1,166 @@ + +from kivy.clock import Clock +from kivy.metrics import dp +from kivy.properties import StringProperty + +from kivy.uix.boxlayout import BoxLayout +from kivy.uix.popup import Popup + +from pybitmessage import state +from datetime import datetime + +from pybitmessage.baseclass.common import toast + +platform = "linux" + + +class LoadingPopup(Popup): + """LoadingPopup class for kivy Ui""" + + def __init__(self, **kwargs): + super(LoadingPopup, self).__init__(**kwargs) + Clock.schedule_once(self.dismiss_popup, 0.5) + + def dismiss_popup(self, dt): + """Dismiss popups""" + self.dismiss() + + +class GrashofPopup(BoxLayout): + """GrashofPopup class for kivy Ui""" + + valid = False + + def __init__(self, **kwargs): + """Grash of pop screen settings""" + super(GrashofPopup, self).__init__(**kwargs) + + def checkAddress_valid(self, instance): + """Checking address is valid or not""" + pass + + def checkLabel_valid(self, instance): + """Checking address label is unique or not""" + pass + + def _onSuccess(self, addressVersion, streamNumber, ripe): + pass + + +class AddbookDetailPopup(BoxLayout): + """AddbookDetailPopup class for kivy Ui""" + + address_label = StringProperty() + address = StringProperty() + + def __init__(self, **kwargs): + """Set screen of address detail page""" + super(AddbookDetailPopup, self).__init__(**kwargs) + + def checkLabel_valid(self, instance): + """Checking address label is unique of not""" + entered_label = str(instance.text.strip()) + address_list = [] + addr_labels = [labels[0] for labels in address_list] + add_dict = dict(address_list) + if self.address and entered_label in addr_labels \ + and self.address != add_dict[entered_label]: + self.ids.add_label.error = True + self.ids.add_label.helper_text = 'label name already exists.' + elif entered_label: + self.ids.add_label.error = False + else: + self.ids.add_label.error = False + self.ids.add_label.helper_text = 'This field is required' + + +class MyaddDetailPopup(BoxLayout): + """MyaddDetailPopup class for kivy Ui""" + + address_label = StringProperty() + address = StringProperty() + + def __init__(self, **kwargs): + """My Address Details screen setting""" + super(MyaddDetailPopup, self).__init__(**kwargs) + + def send_message_from(self): + """Method used to fill from address of composer autofield""" + state.kivyapp.set_navbar_for_composer() + window_obj = state.kivyapp.root.ids + window_obj.sc3.children[1].ids.ti.text = self.address + window_obj.sc3.children[1].ids.btn.text = self.address + window_obj.sc3.children[1].ids.txt_input.text = '' + window_obj.sc3.children[1].ids.subject.text = '' + window_obj.sc3.children[1].ids.body.text = '' + window_obj.scr_mngr.current = 'create' + self.parent.parent.parent.dismiss() + + def close_pop(self): + """Pop is Canceled""" + self.parent.parent.parent.dismiss() + toast('Canceled') + + +class AppClosingPopup(Popup): + """AppClosingPopup class for kivy Ui""" + + def __init__(self, **kwargs): + super(AppClosingPopup, self).__init__(**kwargs) + + def closingAction(self, text): + """Action on closing window""" + if text == 'Yes': + print("*******************EXITING FROM APPLICATION*******************") + from pybitmessage import shutdown + shutdown.doCleanShutdown() + else: + self.dismiss() + toast(text) + + +class SenderDetailPopup(Popup): + """SenderDetailPopup class for kivy Ui""" + + to_addr = StringProperty() + from_addr = StringProperty() + time_tag = StringProperty() + + def __init__(self, **kwargs): + """this metthod initialized the send message detial popup""" + super(SenderDetailPopup, self).__init__(**kwargs) + + def assignDetail(self, to_addr, from_addr, timeinseconds): + """Detailes assigned""" + self.to_addr = to_addr + self.from_addr = from_addr + time_obj = datetime.fromtimestamp(int(timeinseconds)) + self.time_tag = time_obj.strftime("%d %b %Y, %I:%M %p") + device_type = 2 if platform == 'android' else 1.5 + pop_height = 1.2 * device_type * (self.ids.sd_label.height + self.ids.dismiss_btn.height) + if len(to_addr) > 3: + self.height = pop_height + self.ids.to_addId.size_hint_y = None + self.ids.to_addId.height = 50 + self.ids.to_addtitle.add_widget(ToAddressTitle()) + frmaddbox = ToAddrBoxlayout() + frmaddbox.set_toAddress(to_addr) + self.ids.to_addId.add_widget(frmaddbox) + else: + self.ids.space_1.height = dp(0) + self.ids.space_2.height = dp(0) + self.ids.myadd_popup_box.spacing = dp(8 if platform == 'android' else 3) + self.height = pop_height / 1.2 + + +class ToAddrBoxlayout(BoxLayout): + """ToAddrBoxlayout class for kivy Ui""" + to_addr = StringProperty() + + def set_toAddress(self, to_addr): + """This method is use to set to address""" + self.to_addr = to_addr + + +class ToAddressTitle(BoxLayout): + """ToAddressTitle class for BoxLayout behaviour""" diff --git a/src/tests/mock/pybitmessage/baseclass/qrcode.py b/src/tests/mock/pybitmessage/baseclass/qrcode.py new file mode 100644 index 00000000..46867990 --- /dev/null +++ b/src/tests/mock/pybitmessage/baseclass/qrcode.py @@ -0,0 +1,20 @@ +from pybitmessage import state +from pybitmessage.baseclass.common import toast +from kivy.uix.screenmanager import Screen +from kivy.properties import StringProperty +from kivy_garden.qrcode import QRCodeWidget + + +class ShowQRCode(Screen): + """ShowQRCode Screen class for kivy Ui""" + address = StringProperty() + + def qrdisplay(self, instasnce, address): + """Method used for showing QR Code""" + self.ids.qr.clear_widgets() + state.kivyapp.set_toolbar_for_QrCode() + self.address = address + self.ids.qr.add_widget(QRCodeWidget(data=address)) + self.ids.qr.children[0].show_border = False + instasnce.parent.parent.parent.dismiss() + toast('Show QR code') diff --git a/src/tests/mock/pybitmessage/baseclass/scan_screen.py b/src/tests/mock/pybitmessage/baseclass/scan_screen.py new file mode 100644 index 00000000..a2bbff78 --- /dev/null +++ b/src/tests/mock/pybitmessage/baseclass/scan_screen.py @@ -0,0 +1,93 @@ +import os +from pybitmessage.get_platform import platform + +from kivy.clock import Clock +from kivy.lang import Builder +from kivy.properties import ( + BooleanProperty, + ObjectProperty, + StringProperty +) +from kivy.uix.screenmanager import Screen + + +class ScanScreen(Screen): + """ScanScreen is for scaning Qr code""" + # pylint: disable=unused-argument + # pylint: disable=W0212 + camera_avaialbe = BooleanProperty(False) + previous_open_screen = StringProperty() + pop_up_instance = ObjectProperty() + + def __init__(self, *args, **kwargs): + """Getting AddressBook Details""" + super(ScanScreen, self).__init__(*args, **kwargs) + self.check_camera() + + def check_camera(self): + """This method is used for checking camera avaibility""" + if platform != "android": + import cv2 + cap = cv2.VideoCapture(0) + while(cap.isOpened()): + print('Camera is available!') + self.camera_avaialbe = True + break + else: + print("Camera is not available!") + self.camera_avaialbe = False + else: + self.camera_avaialbe = True + + def get_screen(self, screen_name, instance=None): + """This method is used for getting previous screen name""" + self.previous_open_screen = screen_name + if screen_name != 'composer': + self.pop_up_instance = instance + + def on_pre_enter(self): + """ + on_pre_enter works little better on android + It affects screen transition on linux + """ + if not self.children: + tmp = Builder.load_file( + os.path.join( + os.path.dirname(os.path.dirname(__file__)), "kv/{}.kv").format("scanner") + ) + self.add_widget(tmp) + if platform == "android": + Clock.schedule_once(self.start_camera, 0) + + def on_enter(self): + """ + on_enter works better on linux + It creates a black screen on android until camera gets loaded + """ + if platform != "android": + Clock.schedule_once(self.start_camera, 0) + + def on_leave(self): + """this methos will call on leave""" + Clock.schedule_once(self.stop_camera, 0) + + def start_camera(self, *args): + """Its used for starting camera for scanning qrcode""" + self.xcam = self.children[0].ids.zbarcam.ids.xcamera + if platform == "android": + self.xcam.play = True + + else: + Clock.schedule_once(self.open_cam, 0) + + def stop_camera(self, *args): + """Its used for stop the camera""" + self.xcam.play = False + if platform != "android": + self.xcam._camera._device.release() + + def open_cam(self, *args): + """It will open up the camera""" + if not self.xcam._camera._device.isOpened(): + self.xcam._camera._device.open(self.xcam._camera._index) + self.xcam.play = True diff --git a/src/tests/mock/pybitmessage/baseclass/sent.py b/src/tests/mock/pybitmessage/baseclass/sent.py new file mode 100644 index 00000000..a44aaf3b --- /dev/null +++ b/src/tests/mock/pybitmessage/baseclass/sent.py @@ -0,0 +1,172 @@ +from functools import partial +from kivy.clock import Clock +from kivy.properties import StringProperty, ListProperty + +from kivy.uix.screenmanager import Screen +from kivymd.uix.label import MDLabel + +from pybitmessage import state + +from pybitmessage.baseclass.common import ( + showLimitedCnt, ThemeClsColor, avatarImageFirstLetter, + toast, SwipeToDeleteItem, ShowTimeHistoy +) + + +class Sent(Screen): + """Sent Screen class for kivy Ui""" + + queryreturn = ListProperty() + has_refreshed = True + account = StringProperty() + + def __init__(self, *args, **kwargs): + """Association with the screen""" + super(Sent, self).__init__(*args, **kwargs) + if state.association == '': + if state.kivyapp.variable_1: + state.association = state.kivyapp.variable_1[0] + Clock.schedule_once(self.init_ui, 0) + + def init_ui(self, dt=0): + """Clock Schdule for method sent accounts""" + self.loadSent() + print(dt) + + def loadSent(self, where="", what=""): + """Load Sent list for Sent messages""" + self.account = state.association + if state.searcing_text: + self.ids.scroll_y.scroll_y = 1.0 + where = ['subject', 'message'] + what = state.searcing_text + xAddress = 'fromaddress' + data = [] + self.ids.tag_label.text = '' + if self.queryreturn: + self.ids.tag_label.text = 'Sent' + self.set_sentCount(state.sent_count) + for mail in self.queryreturn: + data.append({ + 'text': mail[1].strip(), + 'secondary_text': (mail[2][:50] + '........' if len( + mail[2]) >= 50 else (mail[2] + ',' + mail[3])[0:50] + '........').replace( + '\t', '').replace(' ', ''), + 'ackdata': mail[5], 'senttime': mail[6]},) + self.set_mdlist(data, 0) + self.has_refreshed = True + self.ids.scroll_y.bind(scroll_y=self.check_scroll_y) + else: + self.set_sentCount('0') + content = MDLabel( + font_style='Caption', + theme_text_color='Primary', + text="No message found!" if state.searcing_text + else "yet no message for this account!!!!!!!!!!!!!", + halign='center', + size_hint_y=None, + valign='top') + self.ids.ml.add_widget(content) + + def set_mdlist(self, data, set_index=0): + """This method is used to create the mdList""" + total_sent_msg = len(self.ids.ml.children) + for item in data: + message_row = SwipeToDeleteItem( + text=item["text"], + ) + listItem = message_row.ids.content + listItem.secondary_text = item["secondary_text"] + listItem.theme_text_color = "Custom" + listItem.text_color = ThemeClsColor + image = state.imageDir + '/text_images/{}.png'.format( + avatarImageFirstLetter(item['secondary_text'].strip())) + message_row.ids.avater_img.source = image + listItem.bind(on_release=partial(self.sent_detail, item['ackdata'], message_row)) + message_row.ids.time_tag.text = str(ShowTimeHistoy(item['senttime'])) + message_row.ids.delete_msg.bind(on_press=partial(self.delete, item["ackdata"])) + self.ids.ml.add_widget(message_row, index=set_index) + + updated_msgs = len(self.ids.ml.children) + self.has_refreshed = True if total_sent_msg != updated_msgs else False + + def update_sent_messagelist(self): + """This method is used to update screen when new mail is sent""" + self.account = state.association + if len(self.ids.ml.children) < 3: + self.ids.ml.clear_widgets() + self.loadSent() + if state.association == state.check_sent_acc: + total_sent = int(state.sent_count) + 1 + state.sent_count = str(int(state.sent_count) + 1) + self.set_sentCount(total_sent) + else: + total_sent = int(state.sent_count) + else: + data = [] + if state.association == state.check_sent_acc: + total_sent = int(state.sent_count) + 1 + state.sent_count = str(int(state.sent_count) + 1) + self.set_sentCount(total_sent) + else: + total_sent = int(state.sent_count) + for mail in self.queryreturn: + data.append({ + 'text': mail[1].strip(), + 'secondary_text': (mail[2][:50] + '........' if len( + mail[2]) >= 50 else (mail[2] + ',' + mail[3])[0:50] + '........').replace( + '\t', '').replace(' ', ''), + 'ackdata': mail[5], 'senttime': mail[6]}) + self.set_mdlist(data, total_sent - 1) + if state.msg_counter_objs and state.association == ( + state.check_sent_acc): + state.all_count = str(int(state.all_count) + 1) + state.msg_counter_objs.allmail_cnt.badge_text = state.all_count + state.check_sent_acc = None + + def check_scroll_y(self, instance, somethingelse): + """Load data on scroll down""" + if self.ids.scroll_y.scroll_y <= -0.0 and self.has_refreshed: + self.ids.scroll_y.scroll_y = 0.06 + total_sent_msg = len(self.ids.ml.children) + + @staticmethod + def set_sentCount(total_sent): + """Set the total no. of sent message count""" + src_mng_obj = state.kivyapp.root.ids.content_drawer.ids.send_cnt + state.kivyapp.root.ids.content_drawer.ids.send_cnt.ids.badge_txt.text + if state.association: + src_mng_obj.ids.badge_txt.text = showLimitedCnt(int(total_sent)) + else: + src_mng_obj.ids.badge_txt.text = '0' + + def sent_detail(self, ackdata, instance, *args): + """Load sent mail details""" + if instance.state == 'closed': + instance.ids.delete_msg.disabled = True + if instance.open_progress == 0.0: + state.detailPageType = 'sent' + state.mail_id = ackdata + if self.manager: + src_mng_obj = self.manager + else: + src_mng_obj = self.parent.parent + src_mng_obj.screens[11].clear_widgets() + src_mng_obj.current = 'mailDetail' + else: + instance.ids.delete_msg.disabled = False + + def delete(self, data_index, instance, *args): + """Delete sent mail from sent mail listing""" + msg_count_objs = self.parent.parent.ids.content_drawer.ids + if int(state.sent_count) > 0: + msg_count_objs.send_cnt.ids.badge_txt.text = showLimitedCnt(int(state.sent_count) - 1) + msg_count_objs.trash_cnt.ids.badge_txt.text = showLimitedCnt(int(state.trash_count) + 1) + msg_count_objs.allmail_cnt.ids.badge_txt.text = showLimitedCnt(int(state.all_count) - 1) + state.sent_count = str(int(state.sent_count) - 1) + state.trash_count = str(int(state.trash_count) + 1) + state.all_count = str(int(state.all_count) - 1) + if int(state.sent_count) <= 0: + self.ids.tag_label.text = '' + self.ids.ml.remove_widget(instance.parent.parent) + toast('Deleted') diff --git a/src/tests/mock/pybitmessage/baseclass/settings.py b/src/tests/mock/pybitmessage/baseclass/settings.py new file mode 100644 index 00000000..d63884b2 --- /dev/null +++ b/src/tests/mock/pybitmessage/baseclass/settings.py @@ -0,0 +1,6 @@ +from kivy.uix.screenmanager import Screen + + +class Setting(Screen): + """Setting Screen for kivy Ui""" + pass diff --git a/src/tests/mock/pybitmessage/baseclass/trash.py b/src/tests/mock/pybitmessage/baseclass/trash.py new file mode 100644 index 00000000..885e3987 --- /dev/null +++ b/src/tests/mock/pybitmessage/baseclass/trash.py @@ -0,0 +1,69 @@ +from kivy.clock import Clock +from kivy.properties import ( + ListProperty, + StringProperty +) +from kivymd.uix.label import MDLabel +from kivy.uix.screenmanager import Screen + +from pybitmessage import state + +from pybitmessage.baseclass.common import showLimitedCnt + + +class Trash(Screen): + """Trash Screen class for kivy Ui""" + + trash_messages = ListProperty() + has_refreshed = True + delete_index = None + table_name = StringProperty() + + def __init__(self, *args, **kwargs): + """Trash method, delete sent message and add in Trash""" + super(Trash, self).__init__(*args, **kwargs) + Clock.schedule_once(self.init_ui, 0) + + def init_ui(self, dt=0): + """Clock Schdule for method trash screen""" + if state.association == '': + if state.kivyapp.variable_1: + state.association = state.kivyapp.variable_1[0] + self.ids.tag_label.text = '' + if len(self.trash_messages): + self.ids.ml.clear_widgets() + self.ids.tag_label.text = 'Trash' + self.set_TrashCnt(state.trash_count) + self.set_mdList() + self.ids.scroll_y.bind(scroll_y=self.check_scroll_y) + else: + self.set_TrashCnt('0') + content = MDLabel( + font_style='Caption', + theme_text_color='Primary', + text="yet no trashed message for this account!!!!!!!!!!!!!", + halign='center', + size_hint_y=None, + valign='top') + self.ids.ml.add_widget(content) + + def set_TrashCnt(self, Count): # pylint: disable=no-self-use + """This method is used to set trash message count""" + trashCnt_obj = state.kivyapp.root.ids.content_drawer.ids.trash_cnt + trashCnt_obj.ids.badge_txt.text = showLimitedCnt(int(Count)) + + def set_mdList(self): + """This method is used to create the mdlist""" + total_trash_msg = len(self.ids.ml.children) + self.has_refreshed = True if total_trash_msg != len( + self.ids.ml.children) else False + + def on_swipe_complete(self, instance, *args): + """call on swipe left""" + instance.ids.delete_msg.disabled = bool(instance.state == 'closed') + + def check_scroll_y(self, instance, somethingelse): + """Load data on scroll""" + if self.ids.scroll_y.scroll_y <= -0.0 and self.has_refreshed: + self.ids.scroll_y.scroll_y = 0.06 + total_trash_msg = len(self.ids.ml.children) diff --git a/src/tests/mock/pybitmessage/bmconfigparser.py b/src/tests/mock/pybitmessage/bmconfigparser.py new file mode 100644 index 00000000..efeac69b --- /dev/null +++ b/src/tests/mock/pybitmessage/bmconfigparser.py @@ -0,0 +1,273 @@ +""" +BMConfigParser class definition and default configuration settings +""" + +import os +import shutil +import sys # FIXME: bad style! write more generally +from datetime import datetime + +from six import string_types +from six.moves import configparser + +try: + import state + from singleton import Singleton +except ImportError: + from pybitmessage import state + from pybitmessage.singleton import Singleton + +SafeConfigParser = configparser.SafeConfigParser + + +BMConfigDefaults = { + "bitmessagesettings": { + "maxaddrperstreamsend": 500, + "maxbootstrapconnections": 20, + "maxdownloadrate": 0, + "maxoutboundconnections": 8, + "maxtotalconnections": 200, + "maxuploadrate": 0, + "apiinterface": "127.0.0.1", + "apiport": 8442, + "udp": "True" + }, + "threads": { + "receive": 3, + }, + "network": { + "bind": "", + "dandelion": 90, + }, + "inventory": { + "storage": "sqlite", + "acceptmismatch": "False", + }, + "knownnodes": { + "maxnodes": 20000, + }, + "zlib": { + "maxsize": 1048576 + } +} + + +@Singleton +class BMConfigParser(SafeConfigParser): + """ + Singleton class inherited from :class:`ConfigParser.SafeConfigParser` + with additional methods specific to bitmessage config. + """ + # pylint: disable=too-many-ancestors + _temp = {} + + def set(self, section, option, value=None): + if self._optcre is self.OPTCRE or value: + if not isinstance(value, string_types): + raise TypeError("option values must be strings") + if not self.validate(section, option, value): + raise ValueError("Invalid value %s" % value) + return SafeConfigParser.set(self, section, option, value) + + # pylint: disable=redefined-builtinm, too-many-return-statements + def get(self, section, option, raw=False, vars=None): + if sys.version_info[0] == 3: + # pylint: disable=arguments-differ + try: + if section == "bitmessagesettings" and option == "timeformat": + return SafeConfigParser.get( + self, section, option, raw=True, vars=vars) + try: + return self._temp[section][option] + except KeyError: + pass + return SafeConfigParser.get( + self, section, option, raw=True, vars=vars) + except configparser.InterpolationError: + return SafeConfigParser.get( + self, section, option, raw=True, vars=vars) + except (configparser.NoSectionError, configparser.NoOptionError) as e: + try: + return BMConfigDefaults[section][option] + except (KeyError, ValueError, AttributeError): + raise e + else: + # pylint: disable=arguments-differ + try: + if section == "bitmessagesettings" and option == "timeformat": + return SafeConfigParser.get( + self, section, option, raw, vars) + try: + return self._temp[section][option] + except KeyError: + pass + return SafeConfigParser.get( + self, section, option, True, vars) + except configparser.InterpolationError: + return SafeConfigParser.get( + self, section, option, True, vars) + except (configparser.NoSectionError, configparser.NoOptionError) as e: + try: + return BMConfigDefaults[section][option] + except (KeyError, ValueError, AttributeError): + raise e + + def setTemp(self, section, option, value=None): + """Temporary set option to value, not saving.""" + try: + self._temp[section][option] = value + except KeyError: + self._temp[section] = {option: value} + + def safeGetBoolean(self, section, field): + """Return value as boolean, False on exceptions""" + try: + # Used in the python2.7 + # return self.getboolean(section, field) + # Used in the python3.5.2 + # print(config, section, field) + return self.getboolean(section, field) + except (configparser.NoSectionError, configparser.NoOptionError, + ValueError, AttributeError): + return False + + def safeGetInt(self, section, field, default=0): + """Return value as integer, default on exceptions, + 0 if default missing""" + try: + # Used in the python2.7 + # return self.getint(section, field) + # Used in the python3.7.0 + return int(self.get(section, field)) + except (configparser.NoSectionError, configparser.NoOptionError, + ValueError, AttributeError): + return default + + def safeGetFloat(self, section, field, default=0.0): + """Return value as float, default on exceptions, + 0.0 if default missing""" + try: + return self.getfloat(section, field) + except (configparser.NoSectionError, configparser.NoOptionError, + ValueError, AttributeError): + return default + + def safeGet(self, section, option, default=None): + """Return value as is, default on exceptions, None if default missing""" + try: + return self.get(section, option) + except (configparser.NoSectionError, configparser.NoOptionError, + ValueError, AttributeError): + return default + + def items(self, section, raw=False, variables=None): + # pylint: disable=signature-differs + """Return section variables as parent, + but override the "raw" argument to always True""" + return SafeConfigParser.items(self, section, True, variables) + + def _reset(self): + """Reset current config. There doesn't appear to be a built in + method for this""" + sections = self.sections() + for x in sections: + self.remove_section(x) + + if sys.version_info[0] == 3: + @staticmethod + def addresses(hidden=False): + """Return a list of local bitmessage addresses (from section labels)""" + return [x for x in BMConfigParser().sections() if x.startswith('BM-') and ( + hidden or not BMConfigParser().safeGetBoolean(x, 'hidden'))] + + def read(self, filenames): + self._reset() + SafeConfigParser.read(self, filenames) + for section in self.sections(): + for option in self.options(section): + try: + # pylint: disable=unsubscriptable-object + if not self.validate( + section, option, + self[section][option] + ): + try: + newVal = BMConfigDefaults[section][option] + except configparser.NoSectionError: + continue + except KeyError: + continue + SafeConfigParser.set( + self, section, option, newVal) + except configparser.InterpolationError: + continue + + def readfp(self, fp, filename=None): + # pylint: disable=no-member + SafeConfigParser.read_file(self, fp) + else: + @staticmethod + def addresses(): + """Return a list of local bitmessage addresses (from section labels)""" + return [ + x for x in BMConfigParser().sections() if x.startswith('BM-')] + + def read(self, filenames): + """Read config and populate defaults""" + self._reset() + SafeConfigParser.read(self, filenames) + for section in self.sections(): + for option in self.options(section): + try: + if not self.validate( + section, option, + SafeConfigParser.get(self, section, option) + ): + try: + newVal = BMConfigDefaults[section][option] + except KeyError: + continue + SafeConfigParser.set( + self, section, option, newVal) + except configparser.InterpolationError: + continue + + def save(self): + """Save the runtime config onto the filesystem""" + fileName = os.path.join(state.appdata, 'keys.dat') + fileNameBak = '.'.join([ + fileName, datetime.now().strftime("%Y%j%H%M%S%f"), 'bak']) + # create a backup copy to prevent the accidental loss due to + # the disk write failure + try: + shutil.copyfile(fileName, fileNameBak) + # The backup succeeded. + fileNameExisted = True + except (IOError, Exception): + # The backup failed. This can happen if the file + # didn't exist before. + fileNameExisted = False + + with open(fileName, 'w') as configfile: + self.write(configfile) + # delete the backup + if fileNameExisted: + os.remove(fileNameBak) + + def validate(self, section, option, value): + """Input validator interface (using factory pattern)""" + try: + return getattr(self, 'validate_%s_%s' % (section, option))(value) + except AttributeError: + return True + + @staticmethod + def validate_bitmessagesettings_maxoutboundconnections(value): + """Reject maxoutboundconnections that are too high or too low""" + try: + value = int(value) + except ValueError: + return False + if value < 0 or value > 8: + return False + return True diff --git a/src/tests/mock/pybitmessage/class_addressGenerator.py b/src/tests/mock/pybitmessage/class_addressGenerator.py new file mode 100644 index 00000000..ebc2343e --- /dev/null +++ b/src/tests/mock/pybitmessage/class_addressGenerator.py @@ -0,0 +1,79 @@ +""" +A thread for creating addresses +""" + +from six.moves import queue + +from pybitmessage import state +from pybitmessage import queues + +from pybitmessage.bmconfigparser import BMConfigParser + +from pybitmessage.network.threads import StoppableThread + + +fake_addresses = { + 'BM-2cUgQGcTLWAkC6dNsv2Bc8XB3Y1GEesVLV': { + 'privsigningkey': '5KWXwYq1oJMzghUSJaJoWPn8VdeBbhDN8zFot1cBd6ezKKReqBd', + 'privencryptionkey': '5JaeFJs8iPcQT3N8676r3gHKvJ5mTWXy1VLhGCEDqRs4vpvpxV8' + }, + 'BM-2cUd2dm8MVMokruMTcGhhteTpyRZCAMhnA': { + 'privsigningkey': '5JnJ79nkcwjo4Aj7iG8sFMkzYoQqWfpUjTcitTuFJZ1YKHZz98J', + 'privencryptionkey': '5JXgNzTRouFLqSRFJvuHMDHCYPBvTeMPBiHt4Jeb6smNjhUNTYq' + }, + 'BM-2cWyvL54WytfALrJHZqbsDHca5QkrtByAW': { + 'privsigningkey': '5KVE4gLmcfYVicLdgyD4GmnbBTFSnY7Yj2UCuytQqgBBsfwDhpi', + 'privencryptionkey': '5JTw48CGm5CP8fyJUJQMq8HQANQMHDHp2ETUe1dgm6EFpT1egD7' + }, + 'BM-2cTE65PK9Y4AQEkCZbazV86pcQACocnRXd': { + 'privsigningkey': '5KCuyReHx9MB4m5hhEyCWcLEXqc8rxhD1T2VWk8CicPFc8B6LaZ', + 'privencryptionkey': '5KBRpwXdX3n2tP7f583SbFgfzgs6Jemx7qfYqhdH7B1Vhe2jqY6' + }, + 'BM-2cX5z1EgmJ87f2oKAwXdv4VQtEVwr2V3BG': { + 'privsigningkey': '5K5UK7qED7F1uWCVsehudQrszLyMZxFVnP6vN2VDQAjtn5qnyRK', + 'privencryptionkey': '5J5coocoJBX6hy5DFTWKtyEgPmADpSwfQTazMpU7QPeART6oMAu' + } +} + + +class addressGenerator(StoppableThread): + """A thread for creating fake addresses""" + name = "addressGenerator" + address_list = list(fake_addresses.keys()) + + def stopThread(self): + """"To stop address generator thread""" + try: + queues.addressGeneratorQueue.put(("stopThread", "data")) + except queue.Full: + self.logger.warning('addressGeneratorQueue is Full') + super(addressGenerator, self).stopThread() + + def run(self): + """ + Process the requests for addresses generation + from `.queues.addressGeneratorQueue` + """ + while state.shutdown == 0: + queueValue = queues.addressGeneratorQueue.get() + try: + address = self.address_list.pop(0) + print("queueValue: ", queueValue) + if len(queueValue) >= 3: + label = queueValue[3] + else: + label = '' + + BMConfigParser().add_section(address) + BMConfigParser().set(address, 'label', label) + BMConfigParser().set(address, 'enabled', 'true') + BMConfigParser().set( + address, 'privsigningkey', fake_addresses[address]['privsigningkey']) + BMConfigParser().set( + address, 'privencryptionkey', fake_addresses[address]['privencryptionkey']) + BMConfigParser().save() + + queues.addressGeneratorQueue.task_done() + except IndexError: + self.logger.error( + 'Program error: you can only create 5 fake addresses') diff --git a/src/tests/mock/pybitmessage/get_platform.py b/src/tests/mock/pybitmessage/get_platform.py new file mode 100644 index 00000000..e4fea889 --- /dev/null +++ b/src/tests/mock/pybitmessage/get_platform.py @@ -0,0 +1,48 @@ +from sys import platform as _sys_platform +from os import environ + +""" +We need to check platform and set environ for KIVY_CAMERA, if requires, before importing kivy. + +We cannot use sys.platform directly because it returns 'linux' on android devices as well. +We cannot use kivy.util.platform beacuse it imports kivy beforehand and thus setting environ +after that doesn't make any sense. + +So we needed to copy the `_get_platform` function from kivy.utils +""" + + +def _get_platform(): + # On Android sys.platform returns 'linux2', so prefer to check the + # existence of environ variables set during Python initialization + kivy_build = environ.get("KIVY_BUILD", "") + if kivy_build in {"android", "ios"}: + return kivy_build + elif "P4A_BOOTSTRAP" in environ: + return "android" + elif "ANDROID_ARGUMENT" in environ: + # We used to use this method to detect android platform, + # leaving it here to be backwards compatible with `pydroid3` + # and similar tools outside kivy's ecosystem + return "android" + elif _sys_platform in ("win32", "cygwin"): + return "win" + elif _sys_platform == "darwin": + return "macosx" + elif _sys_platform.startswith("linux"): + return "linux" + elif _sys_platform.startswith("freebsd"): + return "linux" + return "unknown" + +platform = _get_platform() + +if platform not in ("android", "unknown"): + """ + After tweaking a little bit with opencv camera, it's possible to make camera + go on and off as required while the app is still running. + + Other camera provider such as `gi` has some issue upon closing the camera. + by setting KIVY_CAMERA environment variable before importing kivy, we are forcing it to use opencv camera provider. + """ + environ["KIVY_CAMERA"] = "opencv" diff --git a/src/tests/mock/pybitmessage/inventory.py b/src/tests/mock/pybitmessage/inventory.py new file mode 100644 index 00000000..6173c3cd --- /dev/null +++ b/src/tests/mock/pybitmessage/inventory.py @@ -0,0 +1,15 @@ +"""The Inventory singleton""" + +# TODO make this dynamic, and watch out for frozen, like with messagetypes +from pybitmessage.singleton import Singleton + + +# pylint: disable=old-style-class,too-few-public-methods +@Singleton +class Inventory(): + """ + Inventory singleton class which uses storage backends + to manage the inventory. + """ + def __init__(self): + self.numberOfInventoryLookupsPerformed = 0 diff --git a/src/tests/mock/pybitmessage/kv/addressbook.kv b/src/tests/mock/pybitmessage/kv/addressbook.kv new file mode 100644 index 00000000..73b4c1ef --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/addressbook.kv @@ -0,0 +1,26 @@ +: + name: 'addressbook' + BoxLayout: + orientation: 'vertical' + spacing: dp(5) + SearchBar: + id: address_search + GridLayout: + id: identi_tag + padding: [20, 0, 0, 5] + cols: 1 + size_hint_y: None + height: self.minimum_height + MDLabel: + id: tag_label + text: '' + font_style: 'Subtitle2' + BoxLayout: + orientation:'vertical' + ScrollView: + id: scroll_y + do_scroll_x: False + MDList: + id: ml + Loader: + ComposerButton: \ No newline at end of file diff --git a/src/tests/mock/pybitmessage/kv/allmails.kv b/src/tests/mock/pybitmessage/kv/allmails.kv new file mode 100644 index 00000000..f1b9387e --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/allmails.kv @@ -0,0 +1,25 @@ +: + name: 'allmails' + BoxLayout: + orientation: 'vertical' + spacing: dp(5) + GridLayout: + id: identi_tag + padding: [20, 20, 0, 5] + spacing: dp(5) + cols: 1 + size_hint_y: None + height: self.minimum_height + MDLabel: + id: tag_label + text: '' + font_style: 'Subtitle2' + BoxLayout: + orientation:'vertical' + ScrollView: + id: scroll_y + do_scroll_x: False + MDList: + id: ml + Loader: + ComposerButton: \ No newline at end of file diff --git a/src/tests/mock/pybitmessage/kv/chat_list.kv b/src/tests/mock/pybitmessage/kv/chat_list.kv new file mode 100644 index 00000000..e59c32d7 --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/chat_list.kv @@ -0,0 +1,58 @@ +: + name: 'chlist' + canvas.before: + Color: + rgba: 1,1,1,1 + Rectangle: + pos: self.pos + size: self.size + MDTabs: + id: chat_panel + tab_display_mode:'text' + + Tab: + text: app.tr._("Chats") + BoxLayout: + id: chat_box + orientation: 'vertical' + ScrollView: + id: scroll_y + do_scroll_x: False + MDList: + id: ml + MDLabel: + font_style: 'Caption' + theme_text_color: 'Primary' + text: app.tr._('No Chat') + halign: 'center' + size_hint_y: None + bold: True + valign: 'top' + # OneLineAvatarListItem: + # text: "Single-line item with avatar" + # divider: None + # _no_ripple_effect: True + # ImageLeftWidget: + # source: './images/text_images/A.png' + # OneLineAvatarListItem: + # text: "Single-line item with avatar" + # divider: None + # _no_ripple_effect: True + # ImageLeftWidget: + # source: './images/text_images/B.png' + # OneLineAvatarListItem: + # text: "Single-line item with avatar" + # divider: None + # _no_ripple_effect: True + # ImageLeftWidget: + # source: './images/text_images/A.png' + Tab: + text: app.tr._("Contacts") + BoxLayout: + id: contact_box + orientation: 'vertical' + ScrollView: + id: scroll_y + do_scroll_x: False + MDList: + id: ml diff --git a/src/tests/mock/pybitmessage/kv/chat_room.kv b/src/tests/mock/pybitmessage/kv/chat_room.kv new file mode 100644 index 00000000..40843c47 --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/chat_room.kv @@ -0,0 +1,45 @@ +#:import C kivy.utils.get_color_from_hex + +: + name: 'chroom' + BoxLayout: + orientation: 'vertical' + canvas.before: + Color: + rgba: 1,1,1,1 + Rectangle: + pos: self.pos + size: self.size + ScrollView: + Label: + id: chat_logs + text: '' + color: C('#101010') + text_size: (self.width, None) + halign: 'left' + valign: 'top' + padding: (0, 0) # fixed in Kivy 1.8.1 + size_hint: (1, None) + height: self.texture_size[1] + markup: True + font_size: sp(20) + BoxLayout: + height: 50 + orientation: 'horizontal' + padding: 0 + size_hint: (1, None) + + TextInput: + id: message + size_hint: (1, 1) + multiline: False + font_size: sp(20) + on_text_validate: root.send_msg() + + MDRaisedButton: + text: app.tr._("Send") + elevation_normal: 2 + opposite_colors: True + size_hint: (0.3, 1) + pos_hint: {"center_x": .5} + on_press: root.send_msg() diff --git a/src/tests/mock/pybitmessage/kv/common_widgets.kv b/src/tests/mock/pybitmessage/kv/common_widgets.kv new file mode 100644 index 00000000..f864256d --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/common_widgets.kv @@ -0,0 +1,62 @@ +: + source: app.image_path +('/down-arrow.png' if self.parent.is_open == True else '/right-arrow.png') + size: 15, 15 + x: self.parent.x + self.parent.width - self.width - 5 + y: self.parent.y + self.parent.height/2 - self.height + 5 + +: + # id: search_bar + size_hint_y: None + height: self.minimum_height + + MDIconButton: + icon: 'magnify' + + MDTextField: + id: search_field + hint_text: 'Search' + on_text: app.searchQuery(self) + canvas.before: + Color: + rgba: (0,0,0,1) + +: + id: spinner + size_hint: None, None + size: dp(46), dp(46) + pos_hint: {'center_x': 0.5, 'center_y': 0.5} + active: False + +: + size_hint_y: None + height: dp(56) + spacing: '10dp' + pos_hint: {'center_x':0.45, 'center_y': .1} + + Widget: + + MDFloatingActionButton: + icon: 'plus' + opposite_colors: True + elevation_normal: 8 + md_bg_color: [0.941, 0, 0,1] + on_press: app.root.ids.scr_mngr.current = 'create' + on_press: app.clear_composer() + + + +: + size_hint: None, None + size: dp(36), dp(48) + pos_hint: {'center_x': .95, 'center_y': .4} + on_active: app.root.ids.sc10.toggleAction(self) + +: + canvas: + Color: + id: set_clr + # rgba: 0.5, 0.5, 0.5, 0.5 + rgba: 0,0,0,0 + Rectangle: #woohoo!!! + size: self.size + pos: self.pos diff --git a/src/tests/mock/pybitmessage/kv/credits.kv b/src/tests/mock/pybitmessage/kv/credits.kv new file mode 100644 index 00000000..b5eb3db7 --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/credits.kv @@ -0,0 +1,28 @@ +: + name: 'credits' + ScrollView: + do_scroll_x: False + BoxLayout: + size_hint_y: None + orientation: 'vertical' + OneLineListTitle: + id: cred + text: app.tr._("Available Credits") + divider: None + theme_text_color: 'Primary' + _no_ripple_effect: True + long_press_time: 1 + + OneLineListTitle: + id: cred + text: app.tr._(root.available_credits) + divider: None + font_style: 'H5' + theme_text_color: 'Primary' + _no_ripple_effect: True + long_press_time: 1 + AnchorLayout: + MDRaisedButton: + height: dp(38) + text: app.tr._("+Add more credits") + on_press: app.root.ids.scr_mngr.current = 'payment' diff --git a/src/tests/mock/pybitmessage/kv/draft.kv b/src/tests/mock/pybitmessage/kv/draft.kv new file mode 100644 index 00000000..56682d2b --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/draft.kv @@ -0,0 +1,23 @@ +: + name: 'draft' + BoxLayout: + orientation: 'vertical' + spacing: dp(5) + GridLayout: + id: identi_tag + padding: [20, 20, 0, 5] + cols: 1 + size_hint_y: None + height: self.minimum_height + MDLabel: + id: tag_label + text: '' + font_style: 'Subtitle2' + BoxLayout: + orientation:'vertical' + ScrollView: + id: scroll_y + do_scroll_x: False + MDList: + id: ml + ComposerButton: \ No newline at end of file diff --git a/src/tests/mock/pybitmessage/kv/inbox.kv b/src/tests/mock/pybitmessage/kv/inbox.kv new file mode 100644 index 00000000..b9cc8566 --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/inbox.kv @@ -0,0 +1,39 @@ +: + name: 'inbox' + #transition: NoTransition() + BoxLayout: + orientation: 'vertical' + spacing: dp(5) + SearchBar: + id:inbox_search + GridLayout: + id: identi_tag + padding: [20, 0, 0, 5] + cols: 1 + size_hint_y: None + height: self.minimum_height + MDLabel: + id: tag_label + text: '' + font_style: 'Subtitle2' + #FloatLayout: + # MDScrollViewRefreshLayout: + # id: refresh_layout + # refresh_callback: root.refresh_callback + # root_layout: root.set_root_layout() + # MDList: + # id: ml + BoxLayout: + orientation:'vertical' + ScrollView: + id: scroll_y + do_scroll_x: False + MDList: + id: ml + Loader: + ComposerButton: + +: + size_hint:(None, None) + font_style: 'Caption' + halign: 'center' diff --git a/src/tests/mock/pybitmessage/kv/login.kv b/src/tests/mock/pybitmessage/kv/login.kv new file mode 100644 index 00000000..44e24c04 --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/login.kv @@ -0,0 +1,264 @@ +#:import SlideTransition kivy.uix.screenmanager.SlideTransition +: + name:"login" + BoxLayout: + orientation: "vertical" + + #buttons-area-outer + BoxLayout: + size_hint_y: .53 + canvas: + Color: + rgba: 1,1,1,1 + Rectangle: + pos: self.pos + size: self.size + + ScreenManager: + id: check_screenmgr + Screen: + name: "check_screen" + BoxLayout: + orientation: "vertical" + padding: 0, dp(5), 0, dp(5) + spacing: dp(5) + + #label area + AnchorLayout: + size_hint_y: None + height: dp(50) + MDLabel: + text: app.tr._("Select method to make an address:") + bold: True + halign: "center" + theme_text_color: "Custom" + text_color: .4,.4,.4,1 + + #upper-checkbor-area + AnchorLayout: + size_hint_y: None + height: dp(40) + BoxLayout: + size_hint_x: None + width: self.minimum_width + + #check-container + AnchorLayout: + size_hint_x: None + width: dp(40) + Check: + active: True + + #text-container + AnchorLayout: + size_hint_x: None + width: dp(200) + MDLabel: + text: app.tr._("Random Number Generator") + + AnchorLayout: + size_hint_y: None + height: dp(40) + BoxLayout: + size_hint_x: None + width: self.minimum_width + + #check-container + AnchorLayout: + size_hint_x: None + width: dp(40) + Check: + + #text-container + AnchorLayout: + size_hint_x: None + width: dp(200) + MDLabel: + text: app.tr._("Pseudo Number Generator") + AnchorLayout: + MDFillRoundFlatIconButton: + icon: "chevron-double-right" + text: app.tr._("Proceed Next") + on_release: + app.root.ids.scr_mngr.current = 'random' + on_press: + app.root.ids.sc7.reset_address_label() + + #info-area-outer + BoxLayout: + size_hint_y: .47 + padding: dp(7) + InfoLayout: + orientation:"vertical" + padding: 0, dp(5), 0, dp(5) + canvas: + Color: + rgba:1,1,1,1 + Rectangle: + pos: self.pos + size: self.size + Color: + rgba: app.theme_cls.primary_color + Line: + rounded_rectangle: (self.pos[0]+4, self.pos[1]+4, self.width-8,self.height-8, 10, 10, 10, 10, 50) + width: dp(1) + ScreenManager: + id: info_screenmgr + + Screen: + name: "info1" + ScrollView: + bar_width:0 + do_scroll_x: False + + BoxLayout: + orientation: "vertical" + size_hint_y: None + height: self.minimum_height + + #note area + ContentHead: + section_name: "NOTE:" + ContentBody: + section_text: ("You may generate addresses by using either random numbers or by using a pass-phrase.If you use a pass-phrase, the address is called a deterministic address. The Random Number option is selected by default but deterministic addresses may have several pros and cons.") + + + #pros area + ContentHead: + section_name: "PROS:" + ContentBody: + section_text: ("You can re-create your addresses on any computer from memory you need-not-to worry about backing up your keys.dat file as long as you can remember your pass-phrase.") + + #cons area + ContentHead: + section_name: "CONS:" + ContentBody: + section_text: ("You must remember (or write down) your address version number and the stream number along with your pass-phrase.If you choose a weak pass-phrase and someone on the internet can brute-force it, they can read your messages and send messages as you.") + +: + name:"random" + ScrollView: + id:add_random_bx + +: + orientation: "vertical" + #buttons-area-outer + BoxLayout: + orientation: "vertical" + # padding: 0, dp(5), 0, dp(5) + # spacing: dp(5) + size_hint_y: .53 + canvas: + Color: + rgba: 1,1,1,1 + Rectangle: + pos: self.pos + size: self.size + + #label area + AnchorLayout: + size_hint_y: None + height: dp(50) + MDLabel: + text: app.tr._("Enter a label to generate address for:") + bold: True + halign: "center" + theme_text_color: "Custom" + text_color: .4,.4,.4,1 + + AnchorLayout: + size_hint_y: None + height: dp(40) + MDTextField: + id:lab + hint_text: "Label" + required: True + size_hint_x: None + width: dp(190) + helper_text_mode: "on_error" + # helper_text: "Please enter your label name" + on_text: app.root.ids.sc7.add_validation(self) + canvas.before: + Color: + rgba: (0,0,0,1) + + AnchorLayout: + MDFillRoundFlatIconButton: + icon: "chevron-double-right" + text: app.tr._("Proceed Next") + on_release: app.root.ids.sc7.generateaddress() + + Widget: + + #info-area-outer + BoxLayout: + size_hint_y: .47 + padding: dp(7) + InfoLayout: + orientation:"vertical" + padding: 0, dp(5), 0, dp(5) + canvas: + Color: + rgba:1,1,1,1 + Rectangle: + pos: self.pos + size: self.size + Color: + rgba: app.theme_cls.primary_color + Line: + rounded_rectangle: (self.pos[0]+4, self.pos[1]+4, self.width-8,self.height-8, 10, 10, 10, 10, 50) + width: dp(1) + ScreenManager: + id: info_screenmgr + + Screen: + name: "info2" + ScrollView: + bar_width:0 + do_scroll_x: False + + BoxLayout: + orientation: "vertical" + size_hint_y: None + height: self.minimum_height + + #note area + ContentHead: + section_name: "NOTE:" + ContentBody: + section_text: ("Here you may generate as many addresses as you like..Indeed creating and abandoning addresses is not encouraged.") + +: + group: 'group' + size_hint: None, None + size: dp(48), dp(48) + +: + section_name: "" + orientation: "vertical" + size_hint_y: None + height: dp(50) + padding: dp(20), 0, 0, 0 + Widget: + size_hint_y: None + height: dp(25) + MDLabel: + theme_text_color: "Custom" + text_color: .1,.1,.1,.9 + text: app.tr._(root.section_name) + bold: True + font_style: "Button" + +: + section_text: "" + size_hint_y: None + height: self.minimum_height + padding: dp(50), 0, dp(10), 0 + + MDLabel: + size_hint_y: None + height: self.texture_size[1]+dp(10) + theme_text_color: "Custom" + text_color: 0.3,0.3,0.3,1 + font_style: "Body1" + text: app.tr._(root.section_text) diff --git a/src/tests/mock/pybitmessage/kv/maildetail.kv b/src/tests/mock/pybitmessage/kv/maildetail.kv new file mode 100644 index 00000000..6adf86aa --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/maildetail.kv @@ -0,0 +1,77 @@ +: + name: 'mailDetail' + ScrollView: + do_scroll_x: False + BoxLayout: + size_hint_y: None + orientation: 'vertical' + height: self.minimum_height + padding: dp(10) + OneLineListTitle: + id: subj + text: app.tr._(root.subject) + divider: None + font_style: 'H5' + theme_text_color: 'Primary' + _no_ripple_effect: True + long_press_time: 1 + TwoLineAvatarIconListItem: + id: subaft + text: app.tr._(root.from_addr) + secondary_text: app.tr._('to ' + root.to_addr) + divider: None + on_press: root.detailedPopup() + BadgeText: + size_hint:(None, None) + size:[120, 140] if app.app_platform == 'android' else [64, 80] + text: app.tr._(root.time_tag) + halign:'center' + font_style:'Caption' + pos_hint: {'center_y': .8} + _txt_right_pad: dp(70) + font_size: '11sp' + MDChip: + size_hint: (.16 if app.app_platform == 'android' else .08 , None) + text: app.tr._(root.page_type) + icon: '' + text_color: (1,1,1,1) + pos_hint: {'center_x': .91 if app.app_platform == 'android' else .95, 'center_y': .3} + radius: [8] + height: self.parent.height/4 + AvatarSampleWidget: + source: root.avatarImg + MDLabel: + text: root.status + disabled: True + font_style: 'Body2' + halign:'left' + padding_x: 20 + # MDLabel: + # id: bod + # font_style: 'Subtitle2' + # theme_text_color: 'Primary' + # text: root.message + # halign: 'left' + # height: self.texture_size[1] + MyMDTextField: + id: bod + size_hint_y: None + font_style: 'Subtitle2' + text: root.message + multiline: True + readonly: True + line_color_normal: [0,0,0,0] + _current_line_color: [0,0,0,0] + line_color_focus: [0,0,0,0] + markup: True + font_size: '15sp' + canvas.before: + Color: + rgba: (0,0,0,1) + Loader: + + +: + canvas.before: + Color: + rgba: (0,0,0,1) diff --git a/src/tests/mock/pybitmessage/kv/msg_composer.kv b/src/tests/mock/pybitmessage/kv/msg_composer.kv new file mode 100644 index 00000000..82a2a8cb --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/msg_composer.kv @@ -0,0 +1,178 @@ +: + name: 'create' + Loader: + + +: + ScrollView: + id: id_scroll + BoxLayout: + orientation: 'vertical' + size_hint_y: None + height: self.minimum_height + 3 * self.parent.height/5 + padding: dp(20) + spacing: 15 + BoxLayout: + orientation: 'vertical' + MDTextField: + id: ti + size_hint_y: None + hint_text: 'Type or Select sender address' + icon_right: 'account' + icon_right_color: app.theme_cls.primary_light + font_size: '15sp' + multiline: False + required: True + # height: self.parent.height/2 + height: 100 + current_hint_text_color: 0,0,0,0.5 + helper_text_mode: "on_error" + canvas.before: + Color: + rgba: (0,0,0,1) + + + BoxLayout: + size_hint_y: None + height: dp(40) + CustomSpinner: + id: btn + background_color: app.theme_cls.primary_dark + values: app.variable_1 + on_text: root.auto_fill_fromaddr() if self.text != 'Select' else '' + option_cls: Factory.get("ComposerSpinnerOption") + #background_color: color_button if self.state == 'normal' else color_button_pressed + #background_down: 'atlas://data/images/defaulttheme/spinner' + background_normal: '' + background_color: app.theme_cls.primary_color + color: color_font + font_size: '13.5sp' + ArrowImg: + + + RelativeLayout: + orientation: 'horizontal' + BoxLayout: + orientation: 'vertical' + txt_input: txt_input + rv: rv + size : (890, 60) + MyTextInput: + id: txt_input + size_hint_y: None + font_size: '15sp' + color: color_font + # height: self.parent.height/2 + current_hint_text_color: 0,0,0,0.5 + height: 100 + hint_text: app.tr._('Type or Scan QR code for recipients address') + canvas.before: + Color: + rgba: (0,0,0,1) + + RV: + id: rv + MDIconButton: + icon: 'qrcode-scan' + pos_hint: {'center_x': 0.95, 'y': 0.6} + on_release: + if root.is_camara_attached(): app.root.ids.scr_mngr.current = 'scanscreen' + else: root.camera_alert() + on_press: + app.root.ids.sc23.get_screen('composer') + + MyMDTextField: + id: subject + hint_text: 'Subject' + height: 100 + font_size: '15sp' + icon_right: 'notebook-outline' + icon_right_color: app.theme_cls.primary_light + current_hint_text_color: 0,0,0,0.5 + font_color_normal: 0, 0, 0, 1 + size_hint_y: None + required: True + multiline: False + helper_text_mode: "on_focus" + canvas.before: + Color: + rgba: (0,0,0,1) + + # MyMDTextField: + # id: body + # multiline: True + # hint_text: 'body' + # size_hint_y: None + # font_size: '15sp' + # required: True + # helper_text_mode: "on_error" + # canvas.before: + # Color: + # rgba: (0,0,0,1) + ScrollView: + id: scrlv + MDTextField: + id: body + hint_text: 'Body' + mode: "fill" + fill_color: 1/255, 144/255, 254/255, 0.1 + multiline: True + font_color_normal: 0, 0, 0, .4 + icon_right: 'grease-pencil' + icon_right_color: app.theme_cls.primary_light + size_hint: 1, 1 + height: app.window_size[1]/4 + canvas.before: + Color: + rgba: 125/255, 125/255, 125/255, 1 + BoxLayout: + spacing:50 + +: + readonly: False + multiline: False + + +: + # Draw a background to indicate selection + color: 0,0,0,1 + canvas.before: + Color: + rgba: app.theme_cls.primary_dark if self.selected else (1, 1, 1, 0) + Rectangle: + pos: self.pos + size: self.size + +: + canvas: + Color: + rgba: 0,0,0,.2 + + Line: + rectangle: self.x +1 , self.y, self.width - 2, self.height -2 + bar_width: 10 + scroll_type:['bars'] + viewclass: 'SelectableLabel' + SelectableRecycleBoxLayout: + default_size: None, dp(20) + default_size_hint: 1, None + size_hint_y: None + height: self.minimum_height + orientation: 'vertical' + multiselect: False + + +: + canvas.before: + Color: + rgba: (0,0,0,1) + + + +: + font_size: '13.5sp' + #background_color: color_button if self.state == 'down' else color_button_pressed + #background_down: 'atlas://data/images/defaulttheme/button' + background_normal: 'atlas://data/images/defaulttheme/textinput_active' + background_color: app.theme_cls.primary_color + color: color_font \ No newline at end of file diff --git a/src/tests/mock/pybitmessage/kv/myaddress.kv b/src/tests/mock/pybitmessage/kv/myaddress.kv new file mode 100644 index 00000000..93496eeb --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/myaddress.kv @@ -0,0 +1,33 @@ +: + name: 'myaddress' + BoxLayout: + id: main_box + orientation: 'vertical' + spacing: dp(5) + SearchBar: + id: search_bar + GridLayout: + id: identi_tag + padding: [20, 0, 0, 5] + cols: 1 + size_hint_y: None + height: self.minimum_height + MDLabel: + id: tag_label + text: app.tr._('My Addresses') + font_style: 'Subtitle2' + FloatLayout: + MDScrollViewRefreshLayout: + id: refresh_layout + refresh_callback: root.refresh_callback + root_layout: root + MDList: + id: ml + Loader: + + +: + size_hint: None, None + size: dp(36), dp(48) + pos_hint: {'center_x': .95, 'center_y': .4} + on_active: app.root.ids.sc10.toggleAction(self) \ No newline at end of file diff --git a/src/tests/mock/pybitmessage/kv/network.kv b/src/tests/mock/pybitmessage/kv/network.kv new file mode 100644 index 00000000..b77dea26 --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/network.kv @@ -0,0 +1,131 @@ +: + name: 'networkstat' + MDTabs: + id: tab_panel + tab_display_mode:'text' + + Tab: + text: app.tr._("Total connections") + ScrollView: + do_scroll_x: False + MDList: + id: ml + size_hint_y: None + height: dp(200) + OneLineListItem: + text: app.tr._("Total Connections") + _no_ripple_effect: True + BoxLayout: + orientation: 'vertical' + size_hint_y: None + height: dp(58) + MDRaisedButton: + _no_ripple_effect: True + # size_hint: .6, 0 + # height: dp(40) + text: app.tr._(root.text_variable_1) + elevation_normal: 2 + opposite_colors: True + pos_hint: {'center_x': .5} + # MDLabel: + # font_style: 'H6' + # text: app.tr._(root.text_variable_1) + # font_size: '13sp' + # color: (1,1,1,1) + # halign: 'center' + Tab: + text: app.tr._('Processes') + ScrollView: + do_scroll_x: False + MDList: + id: ml + size_hint_y: None + height: dp(500) + OneLineListItem: + text: app.tr._("person-to-person") + _no_ripple_effect: True + + BoxLayout: + orientation: 'vertical' + size_hint_y: None + height: dp(58) + MDRaisedButton: + _no_ripple_effect: True + # size_hint: .6, 0 + # height: dp(40) + text: app.tr._(root.text_variable_2) + elevation_normal: 2 + opposite_colors: True + pos_hint: {'center_x': .5} + # MDLabel: + # font_style: 'H6' + # text: app.tr._(root.text_variable_2) + # font_size: '13sp' + # color: (1,1,1,1) + # halign: 'center' + OneLineListItem: + text: app.tr._("Brodcast") + _no_ripple_effect: True + + BoxLayout: + orientation: 'vertical' + size_hint_y: None + height: dp(58) + MDRaisedButton: + _no_ripple_effect: True + # size_hint: .6, 0 + # height: dp(40) + text: app.tr._(root.text_variable_3) + elevation_normal: 2 + opposite_colors: True + pos_hint: {'center_x': .5} + # MDLabel: + # font_style: 'H6' + # text: app.tr._(root.text_variable_3) + # font_size: '13sp' + # color: (1,1,1,1) + # halign: 'center' + OneLineListItem: + text: app.tr._("publickeys") + _no_ripple_effect: True + + BoxLayout: + orientation: 'vertical' + size_hint_y: None + height: dp(58) + MDRaisedButton: + _no_ripple_effect: True + # size_hint: .6, 0 + # height: dp(40) + text: app.tr._(root.text_variable_4) + elevation_normal: 2 + opposite_colors: True + pos_hint: {'center_x': .5} + # MDLabel: + # font_style: 'H6' + # text: app.tr._(root.text_variable_4) + # font_size: '13sp' + # color: (1,1,1,1) + # halign: 'center' + OneLineListItem: + text: app.tr._("objects") + _no_ripple_effect: True + + BoxLayout: + orientation: 'vertical' + size_hint_y: None + height: dp(58) + MDRaisedButton: + _no_ripple_effect: True + # size_hint: .6, 0 + #height: dp(40) + text: app.tr._(root.text_variable_5) + elevation_normal: 2 + opposite_colors: True + pos_hint: {'center_x': .5} + # MDLabel: + # font_style: 'H6' + # text: app.tr._(root.text_variable_5) + # font_size: '13sp' + # color: (1,1,1,1) + # halign: 'center' diff --git a/src/tests/mock/pybitmessage/kv/payment.kv b/src/tests/mock/pybitmessage/kv/payment.kv new file mode 100644 index 00000000..542e8e0e --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/payment.kv @@ -0,0 +1,253 @@ +#:import get_color_from_hex kivy.utils.get_color_from_hex + +: + name: "payment" + BoxLayout: + ScrollView: + bar_width:0 + do_scroll_x: False + #scroll_y:0 + + BoxLayout: + spacing: dp(8) + padding: dp(5) + size_hint_y: None + height: self.minimum_height + orientation: "vertical" + + ProductCategoryLayout: + category_text: "Monthly-Subscriptions" + + ProductLayout: + heading_text: "Gas (Play Billing Codelab)" + price_text: "$0.99" + source: app.image_path + "/payment/buynew1.png" + description_text: "Buy gasoline to ride!" + product_id: "SKUGASBILLING" + + ProductLayout: + heading_text: "Upgrade your car (Play Billing Codelab)" + price_text: "$1.49" + source: app.image_path + "/payment/buynew1.png" + description_text: "Buy a premium outfit for your car!" + product_id: "SKUUPGRADECAR" + + ProductLayout: + heading_text: "Month in gold status (Play Billing Codelab)" + price_text: "$0.99" + source: app.image_path + "/payment/buynew1.png" + description_text: "Enjoy a gold status for a month!" + product_id: "SKUMONTHLYGOLD" + + ProductCategoryLayout: + category_text: "One-time payment" + + ProductLayout: + heading_text: "Gas (Play Billing Codelab)" + price_text: "$0.99" + source: app.image_path + "/payment/buynew1.png" + description_text: "Buy gasoline to ride!" + product_id: "SKUONETIMEGAS" + + ProductCategoryLayout: + category_text: "Annual-Subscriptions" + + ProductLayout: + heading_text: "Gas (Play Billing Codelab)" + price_text: "$0.99" + source: app.image_path + "/payment/buynew1.png" + description_text: "Buy gasoline to ride!" + product_id: "SKUANNUALGAS" + + ProductLayout: + heading_text: "Year in gold status (Play Billing Codelab)" + price_text: "$10.99" + source: app.image_path + "/payment/buynew1.png" + description_text: "Enjoy a gold status for a year!" + product_id: "SKUANNUALGOLD" + +: + size_hint_y: None + height: self.minimum_height + category_text:"" + + orientation: "vertical" + spacing: 2 + + #category area + Category: + text_: root.category_text + +: + canvas: + Color: + rgba: 1,1,1,1 + Rectangle: + pos: self.pos + size: self.size + text_: "" + size_hint_y: None + height: dp(30) + Widget: + size_hint_x: None + width: dp(20) + MDLabel: + text: root.text_ + font_size: sp(15) + +: + heading_text: "" + price_text: "" + source: "" + description_text: "" + + product_id: "" + + canvas: + Color: + rgba: 1,1,1,1 + Rectangle: + pos: self.pos + size: self.size + + size_hint_y: None + height: dp(200) + orientation: "vertical" + + #heading area + BoxLayout: + size_hint_y: 0.3 + + #text heading + BoxLayout: + Widget: + size_hint_x: None + width: dp(20) + MDLabel: + text: root.heading_text + bold: True + + #price text + BoxLayout: + size_hint_x:.3 + MDLabel: + text: root.price_text + bold: True + halign: "right" + theme_text_color: "Custom" + text_color: 0,0,1,1 + Widget: + size_hint_x: None + width: dp(20) + + #details area + BoxLayout: + size_hint_y: 0.3 + Widget: + size_hint_x: None + width: dp(20) + + #image area + AnchorLayout: + size_hint_x: None + width: self.height + BoxLayout: + canvas: + Color: + rgba: 1,1,1,1 + Ellipse: + size: self.size + pos: self.pos + source: root.source + Widget: + size_hint_x: None + width: dp(10) + + #description text + BoxLayout: + #size_hint_x: 1 + MDLabel: + text: root.description_text + font_size: sp(15) + + #Button Area + BoxLayout: + size_hint_y: 0.4 + Widget: + + AnchorLayout: + anchor_x: "right" + MDRaisedButton: + elevation_normal: 5 + text: "BUY" + on_release: + #print(app) + app.open_payment_layout(root.product_id) + + Widget: + size_hint_x: None + width: dp(20) + +: + on_release: app.initiate_purchase(self.method_name) + recent: False + source: "" + method_name: "" + right_label_text: "Recent" if self.recent else "" + + ImageLeftWidget: + source: root.source + + RightLabel: + text: root.right_label_text + theme_text_color: "Custom" + text_color: 0,0,0,.4 + font_size: sp(12) + +: + orientation: "vertical" + size_hint_y: None + height: "200dp" + + BoxLayout: + size_hint_y: None + height: dp(40) + + Widget: + size_hint_x: None + width: dp(20) + MDLabel: + text: "Select Payment Method" + font_size: sp(14) + bold: True + theme_text_color: "Custom" + text_color: 0,0,0,.5 + + + ScrollView: + + GridLayout: + cols: 1 + size_hint_y:None + height:self.minimum_height + + ListItemWithLabel: + source: app.image_path + "/payment/gplay.png" + text: "Google Play" + method_name: "gplay" + recent: True + + ListItemWithLabel: + source: app.image_path + "/payment/btc.png" + text: "BTC" + method_name: "btc" + + ListItemWithLabel: + source: app.image_path + "/payment/paypal.png" + text: "Paypal" + method_name: "som" + + ListItemWithLabel: + source: app.image_path + "/payment/buy.png" + text: "One more method" + method_name: "omm" \ No newline at end of file diff --git a/src/tests/mock/pybitmessage/kv/popup.kv b/src/tests/mock/pybitmessage/kv/popup.kv new file mode 100644 index 00000000..217d9131 --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/popup.kv @@ -0,0 +1,333 @@ +: + separator_color: 1, 1, 1, 1 + background: "White.png" + Button: + id: btn + disabled: True + background_disabled_normal: "White.png" + Image: + source: app.image_path + '/loader.zip' + anim_delay: 0 + #mipmap: True + size: root.size + + +: + id: popup_box + orientation: 'vertical' + # spacing:dp(20) + # spacing: "12dp" + size_hint_y: None + # height: "120dp" + height: label.height+address.height + BoxLayout: + orientation: 'vertical' + MDTextField: + id: label + multiline: False + hint_text: app.tr._("Label") + required: True + icon_right: 'label' + helper_text_mode: "on_error" + on_text: root.checkLabel_valid(self) + canvas.before: + Color: + rgba: (0,0,0,1) + MDTextField: + id: address + hint_text: app.tr._("Address") + required: True + icon_right: 'book-plus' + helper_text_mode: "on_error" + multiline: False + on_text: root.checkAddress_valid(self) + canvas.before: + Color: + rgba: (0,0,0,1) + +: + id: addbook_popup_box + size_hint_y: None + height: 2.5*(add_label.height) + orientation: 'vertical' + spacing:dp(5) + MDLabel + font_style: 'Subtitle2' + theme_text_color: 'Primary' + text: app.tr._("Label") + font_size: '17sp' + halign: 'left' + MDTextField: + id: add_label + font_style: 'Body1' + font_size: '15sp' + halign: 'left' + text: app.tr._(root.address_label) + theme_text_color: 'Primary' + required: True + helper_text_mode: "on_error" + on_text: root.checkLabel_valid(self) + canvas.before: + Color: + rgba: (0,0,0,1) + MDLabel: + font_style: 'Subtitle2' + theme_text_color: 'Primary' + text: app.tr._("Address") + font_size: '17sp' + halign: 'left' + Widget: + size_hint_y: None + height: dp(1) + BoxLayout: + orientation: 'horizontal' + MDLabel: + id: address + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._(root.address) + font_size: '15sp' + halign: 'left' + IconRightSampleWidget: + pos_hint: {'center_x': 0, 'center_y': 1} + icon: 'content-copy' + on_press: app.copy_composer_text(root.address) + + +: + id: myadd_popup + size_hint_y: None + height: "130dp" + spacing:dp(25) + + #height: dp(1.5*(myaddr_label.height)) + orientation: 'vertical' + MDLabel: + id: myaddr_label + font_style: 'Subtitle2' + theme_text_color: 'Primary' + text: app.tr._("Label") + font_size: '17sp' + halign: 'left' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: root.address_label + font_size: '15sp' + halign: 'left' + MDLabel: + font_style: 'Subtitle2' + theme_text_color: 'Primary' + text: app.tr._("Address") + font_size: '17sp' + halign: 'left' + BoxLayout: + orientation: 'horizontal' + MDLabel: + id: label_address + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._(root.address) + font_size: '15sp' + halign: 'left' + IconRightSampleWidget: + pos_hint: {'center_x': 0, 'center_y': 1} + icon: 'content-copy' + on_press: app.copy_composer_text(root.address) + BoxLayout: + id: my_add_btn + spacing:5 + orientation: 'horizontal' + size_hint_y: None + height: self.minimum_height + MDRaisedButton: + size_hint: 2, None + height: dp(40) + on_press: root.send_message_from() + MDLabel: + font_style: 'H6' + text: app.tr._('Send message from') + font_size: '13sp' + color: (1,1,1,1) + halign: 'center' + MDRaisedButton: + size_hint: 1.5, None + height: dp(40) + on_press: app.root.ids.scr_mngr.current = 'showqrcode' + on_press: app.root.ids.sc15.qrdisplay(root, root.address) + MDLabel: + font_style: 'H6' + text: app.tr._('Show QR code') + font_size: '13sp' + color: (1,1,1,1) + halign: 'center' + MDRaisedButton: + size_hint: 1.5, None + height: dp(40) + on_press: root.close_pop() + MDLabel: + font_style: 'H6' + text: app.tr._('Cancel') + font_size: '13sp' + color: (1,1,1,1) + halign: 'center' + +: + id: closing_popup + size_hint : (None,None) + height: 1.4*(popup_label.height+ my_add_btn.children[0].height) + width :app.window_size[0] - (app.window_size[0]/10 if app.app_platform == 'android' else app.window_size[0]/4) + background: app.image_path + '/popup.jpeg' + auto_dismiss: False + separator_height: 0 + BoxLayout: + id: myadd_popup_box + size_hint_y: None + spacing:dp(70) + orientation: 'vertical' + BoxLayout: + size_hint_y: None + orientation: 'vertical' + spacing:dp(25) + MDLabel: + id: popup_label + font_style: 'Subtitle2' + theme_text_color: 'Primary' + text: app.tr._("Bitmessage isn't connected to the network.\n If you quit now, it may cause delivery delays.\n Wait until connected and the synchronisation finishes?") + font_size: '17sp' + halign: 'center' + BoxLayout: + id: my_add_btn + spacing:5 + orientation: 'horizontal' + MDRaisedButton: + size_hint: 1.5, None + height: dp(40) + on_press: root.closingAction(self.children[0].text) + on_press: app.stop() + MDLabel: + font_style: 'H6' + text: app.tr._('Yes') + font_size: '13sp' + color: (1,1,1,1) + halign: 'center' + MDRaisedButton: + size_hint: 1.5, None + height: dp(40) + on_press: root.closingAction(self.children[0].text) + MDLabel: + font_style: 'H6' + text: app.tr._('No') + font_size: '13sp' + color: (1,1,1,1) + halign: 'center' + MDRaisedButton: + size_hint: 1.5, None + height: dp(40) + #on_press: root.dismiss() + on_press: root.closingAction(self.children[0].text) + MDLabel: + font_style: 'H6' + text: app.tr._('Cancel') + font_size: '13sp' + color: (1,1,1,1) + halign: 'center' + +: + id: myadd_popup + size_hint : (None,None) + # height: 2*(sd_label.height+ sd_btn.children[0].height) + width :app.window_size[0] - (app.window_size[0]/10 if app.app_platform == 'android' else app.window_size[0]/4) + background: app.image_path + '/popup.jpeg' + auto_dismiss: False + separator_height: 0 + BoxLayout: + id: myadd_popup_box + size_hint_y: None + orientation: 'vertical' + spacing:dp(8 if app.app_platform == 'android' else 3) + BoxLayout: + orientation: 'vertical' + MDLabel: + id: from_add_label + font_style: 'Subtitle2' + theme_text_color: 'Primary' + text: app.tr._("From :") + font_size: '15sp' + halign: 'left' + Widget: + size_hint_y: None + height: dp(1 if app.app_platform == 'android' else 0) + BoxLayout: + size_hint_y: None + height: 50 + orientation: 'horizontal' + MDLabel: + id: sd_label + font_style: 'Body2' + theme_text_color: 'Primary' + text: app.tr._("[b]" + root.from_addr + "[/b]") + font_size: '15sp' + halign: 'left' + markup: True + IconRightSampleWidget: + icon: 'content-copy' + on_press: app.copy_composer_text(root.from_addr) + Widget: + id: space_1 + size_hint_y: None + height: dp(2 if app.app_platform == 'android' else 0) + BoxLayout: + id: to_addtitle + Widget: + id:space_2 + size_hint_y: None + height: dp(1 if app.app_platform == 'android' else 0) + BoxLayout: + id: to_addId + BoxLayout: + size_hint_y: None + orientation: 'vertical' + height: 50 + MDLabel: + font_style: 'Body2' + theme_text_color: 'Primary' + text: app.tr._("Date : " + root.time_tag) + font_size: '15sp' + halign: 'left' + BoxLayout: + id: sd_btn + orientation: 'vertical' + MDRaisedButton: + id: dismiss_btn + on_press: root.dismiss() + size_hint: .2, 0 + pos_hint: {'x': 0.8, 'y': 0} + MDLabel: + font_style: 'H6' + text: app.tr._('Cancel') + font_size: '13sp' + color: (1,1,1,1) + halign: 'center' + +: + orientation: 'horizontal' + MDLabel: + font_style: 'Body2' + theme_text_color: 'Primary' + text: app.tr._(root.to_addr) + font_size: '15sp' + halign: 'left' + IconRightSampleWidget: + icon: 'content-copy' + on_press: app.copy_composer_text(root.to_addr) + +: + orientation: 'vertical' + MDLabel: + id: to_add_label + font_style: 'Subtitle2' + theme_text_color: 'Primary' + text: "To :" + font_size: '15sp' + halign: 'left' \ No newline at end of file diff --git a/src/tests/mock/pybitmessage/kv/qrcode.kv b/src/tests/mock/pybitmessage/kv/qrcode.kv new file mode 100644 index 00000000..cadaa996 --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/qrcode.kv @@ -0,0 +1,33 @@ +: + name: 'showqrcode' + BoxLayout: + orientation: 'vertical' + size_hint: (None, None) + pos_hint:{'center_x': .5, 'top': 0.9} + size: (app.window_size[0]/1.8, app.window_size[0]/1.8) + id: qr + BoxLayout: + orientation: 'vertical' + MyMDTextField: + size_hint_y: None + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._(root.address) + multiline: True + readonly: True + line_color_normal: [0,0,0,0] + _current_line_color: [0,0,0,0] + line_color_focus: [0,0,0,0] + halign: 'center' + font_size: dp(15) + bold: True + canvas.before: + Color: + rgba: (0,0,0,1) + # MDLabel: + # size_hint_y: None + # font_style: 'Body1' + # theme_text_color: 'Primary' + # text: "[b]BM-2cV7Y8imvAevK6z6YmhYRcj2t7rghBtDSZ[/b]" + # markup: True + # pos_hint: {'x': .28, 'y': 0.6} \ No newline at end of file diff --git a/src/tests/mock/pybitmessage/kv/scan_screen.kv b/src/tests/mock/pybitmessage/kv/scan_screen.kv new file mode 100644 index 00000000..dbcff5a1 --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/scan_screen.kv @@ -0,0 +1,2 @@ +: + name:'scanscreen' \ No newline at end of file diff --git a/src/tests/mock/pybitmessage/kv/scanner.kv b/src/tests/mock/pybitmessage/kv/scanner.kv new file mode 100644 index 00000000..1c56f6c2 --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/scanner.kv @@ -0,0 +1,37 @@ +#:import ZBarSymbol pyzbar.pyzbar.ZBarSymbol + +BoxLayout: + orientation: 'vertical' + ZBarCam: + id: zbarcam + # optional, by default checks all types + code_types: ZBarSymbol.QRCODE, ZBarSymbol.EAN13 + scan_callback: app._after_scan + scanner_line_y_initial: self.size[1]/2 +self.qrwidth/2 + scanner_line_y_final: self.size[1]/2-self.qrwidth/2 + + canvas: + Color: + rgba: 0,0,0,.25 + + #left rect + Rectangle: + pos: self.pos[0], self.pos[1] + size: self.size[0]/2-self.qrwidth/2, self.size[1] + + #right rect + Rectangle: + pos: self.size[0]/2+self.qrwidth/2, 0 + size: self.size[0]/2-self.qrwidth/2, self.size[1] + + #top rect + Rectangle: + pos: self.size[0]/2-self.qrwidth/2, self.size[1]/2+self.qrwidth/2 + size: self.qrwidth, self.size[1]/2-self.qrwidth/2 + + #bottom rect + Rectangle: + pos: self.size[0]/2-self.qrwidth/2, 0 + size: self.qrwidth, self.size[1]/2-self.qrwidth/2 + + \ No newline at end of file diff --git a/src/tests/mock/pybitmessage/kv/sent.kv b/src/tests/mock/pybitmessage/kv/sent.kv new file mode 100644 index 00000000..11477ed6 --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/sent.kv @@ -0,0 +1,26 @@ +: + name: 'sent' + BoxLayout: + orientation: 'vertical' + spacing: dp(5) + SearchBar: + id: sent_search + GridLayout: + id: identi_tag + padding: [20, 0, 0, 5] + cols: 1 + size_hint_y: None + height: self.minimum_height + MDLabel: + id: tag_label + text: '' + font_style: 'Subtitle2' + BoxLayout: + orientation:'vertical' + ScrollView: + id: scroll_y + do_scroll_x: False + MDList: + id: ml + Loader: + ComposerButton: \ No newline at end of file diff --git a/src/tests/mock/pybitmessage/kv/settings.kv b/src/tests/mock/pybitmessage/kv/settings.kv new file mode 100644 index 00000000..609c8e80 --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/settings.kv @@ -0,0 +1,964 @@ +: + name: 'set' + MDTabs: + id: tab_panel + tab_display_mode:'text' + + Tab: + text: app.tr._("User Interface") + ScrollView: + do_scroll_x: False + BoxLayout: + size_hint_y: None + orientation: 'vertical' + height: dp(250) + self.minimum_height + padding: 10 + BoxLayout: + size_hint_y: None + orientation: 'horizontal' + height: self.minimum_height + MDCheckbox: + id: chkbox + size_hint: None, None + size: dp(48), dp(50) + # active: True + halign: 'center' + disabled: True + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Start-on-login not yet supported on your OS") + halign: 'left' + pos_hint: {'center_x': 0, 'center_y': 0.6} + disabled: True + BoxLayout: + size_hint_y: None + orientation: 'vertical' + padding: [20, 0, 0, 0] + spacing: dp(10) + height: dp(100) + self.minimum_height + # pos_hint: {'center_x': 0, 'center_y': 0.6} + BoxLayout: + id: box_height + orientation: 'vertical' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Tray") + halign: 'left' + bold: True + BoxLayout: + orientation: 'horizontal' + MDCheckbox: + id: chkbox + size_hint: None, None + size: dp(48), dp(50) + # active: True + halign: 'center' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Start Bitmessage in the tray(don't show main window)") + halign: 'left' + pos_hint: {'x': 0, 'y': .5} + BoxLayout: + orientation: 'horizontal' + MDCheckbox: + id: chkbox + size_hint: None, None + size: dp(48), dp(50) + # active: True + halign: 'center' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Minimize to tray") + halign: 'left' + pos_hint: {'x': 0, 'y': .5} + BoxLayout: + orientation: 'horizontal' + MDCheckbox: + id: chkbox + size_hint: None, None + size: dp(48), dp(50) + # active: True + halign: 'center' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Close to tray") + halign: 'left' + pos_hint: {'x': 0, 'y': .5} + BoxLayout: + size_hint_y: None + orientation: 'vertical' + height: dp(100) + self.minimum_height + BoxLayout: + orientation: 'horizontal' + MDCheckbox: + id: chkbox + size_hint: None, None + size: dp(48), dp(50) + # active: True + halign: 'center' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Hide connection notifications") + halign: 'left' + pos_hint: {'x': 0, 'y': 0.2} + BoxLayout: + orientation: 'horizontal' + MDCheckbox: + id: chkbox + size_hint: None, None + size: dp(48), dp(50) + active: True + halign: 'center' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Show notification when message received") + halign: 'left' + pos_hint: {'x': 0, 'y': 0.2} + BoxLayout: + orientation: 'horizontal' + MDCheckbox: + id: chkbox + size_hint: None, None + size: dp(48), dp(50) + # active: True + halign: 'center' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Run in Portable Mode") + halign: 'left' + pos_hint: {'x': 0, 'y': 0.2} + BoxLayout: + orientation: 'vertical' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._('In portable Mode, messages and config files are stored in the same directory as the program rather then the normal application-data folder. This makes it convenient to run Bitmessage from a USB thumb drive.') + # text: 'huiiiii' + halign: 'left' + BoxLayout: + size_hint_y: None + orientation: 'vertical' + height: dp(100) + self.minimum_height + BoxLayout: + orientation: 'horizontal' + MDCheckbox: + id: chkbox + size_hint: None, None + size: dp(48), dp(50) + halign: 'center' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Willingly include unencrypted destination address when sending to a mobile device") + halign: 'left' + pos_hint: {'x': 0, 'y': 0.2} + BoxLayout: + orientation: 'horizontal' + MDCheckbox: + id: chkbox + size_hint: None, None + size: dp(48), dp(50) + active: True + halign: 'center' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Use identicons") + halign: 'left' + pos_hint: {'x': 0, 'y': 0.2} + BoxLayout: + orientation: 'horizontal' + MDCheckbox: + id: chkbox + size_hint: None, None + size: dp(48), dp(50) + halign: 'center' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Reply below Quote") + halign: 'left' + pos_hint: {'x': 0, 'y': 0.2} + Widget: + size_hint_y: None + height: 10 + BoxLayout: + size_hint_y: None + orientation: 'vertical' + # padding: [0, 10, 0, 0] + spacing: 10 + padding: [20, 0, 0, 0] + height: dp(20) + self.minimum_height + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Interface Language") + # halign: 'right' + bold: True + MDDropDownItem: + id: dropdown_item + text: "System Setting" + # pos_hint: {"center_x": .5, "center_y": .6} + # current_item: "Item 0" + # on_release: root.menu.open() + BoxLayout: + spacing:5 + orientation: 'horizontal' + # pos_hint: {'x':.76} + BoxLayout: + orientation: 'horizontal' + spacing: 10 + MDRaisedButton: + text: app.tr._('Apply') + # on_press: root.change_language() + Tab: + text: 'Network Settings' + ScrollView: + do_scroll_x: False + BoxLayout: + size_hint_y: None + orientation: 'vertical' + height: dp(500) + self.minimum_height + padding: 10 + BoxLayout: + id: box_height + orientation: 'vertical' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Listening port") + halign: 'left' + bold: True + BoxLayout: + orientation: 'horizontal' + padding: [10, 0, 0, 0] + BoxLayout: + orientation: 'horizontal' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Listen for connections on port:") + halign: 'left' + BoxLayout: + orientation: 'horizontal' + MDTextFieldRect: + size_hint: None, None + size: dp(100), dp(30) + text: app.tr._('8444') + pos_hint: {'center_y': .5, 'center_x': .5} + input_filter: "int" + BoxLayout: + orientation: 'horizontal' + padding_left: 10 + MDCheckbox: + id: chkbox + size_hint: None, None + size: dp(48), dp(50) + # active: True + halign: 'center' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("UPnP") + halign: 'left' + pos_hint: {'x': 0, 'y': 0} + BoxLayout: + orientation: 'vertical' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Proxy server / Tor") + halign: 'left' + bold: True + + GridLayout: + cols: 2 + padding: [10, 0, 0, 0] + MDLabel: + size_hint_x: None + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Type:") + halign: 'left' + MDDropDownItem: + id: dropdown_item2 + dropdown_bg: [1, 1, 1, 1] + text: 'none' + pos_hint: {'x': 0.9, 'y': 0} + items: [f"{i}" for i in ['System Setting','U.S. English']] + BoxLayout: + size_hint_y: None + orientation: 'vertical' + padding: [30, 0, 0, 0] + spacing: 10 + height: dp(100) + self.minimum_height + BoxLayout: + orientation: 'horizontal' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Server hostname:") + halign: 'left' + MDTextFieldRect: + size_hint: None, None + size: dp(app.window_size[0]/4), dp(30) + hint_text: app.tr._('localhost') + pos_hint: {'center_y': .5, 'center_x': .5} + BoxLayout: + orientation: 'horizontal' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Port:") + halign: 'left' + # TextInput: + # size_hint: None, None + # hint_text: '9050' + # size: dp(app.window_size[0]/4), dp(30) + # input_filter: "int" + # readonly: False + # multiline: False + # font_size: '15sp' + MDTextFieldRect: + size_hint: None, None + size: dp(app.window_size[0]/4), dp(30) + hint_text: app.tr._('9050') + pos_hint: {'center_y': .5, 'center_x': .5} + input_filter: "int" + BoxLayout: + orientation: 'horizontal' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Username:") + halign: 'left' + MDTextFieldRect: + size_hint: None, None + size: dp(app.window_size[0]/4), dp(30) + pos_hint: {'center_y': .5, 'center_x': .5} + BoxLayout: + orientation: 'horizontal' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Pass:") + halign: 'left' + MDTextFieldRect: + size_hint: None, None + size: dp(app.window_size[0]/4), dp(30) + pos_hint: {'center_y': .5, 'center_x': .5} + BoxLayout: + orientation: 'horizontal' + padding: [30, 0, 0, 0] + MDCheckbox: + id: chkbox + size_hint: None, None + size: dp(48), dp(50) + # active: True + halign: 'center' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Authentication") + halign: 'left' + pos_hint: {'x': 0, 'y': 0} + BoxLayout: + orientation: 'horizontal' + padding: [30, 0, 0, 0] + MDCheckbox: + id: chkbox + size_hint: None, None + size: dp(48), dp(50) + # active: True + halign: 'center' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Listen for incoming connections when using proxy") + halign: 'left' + pos_hint: {'x': 0, 'y': 0} + BoxLayout: + orientation: 'horizontal' + padding: [30, 0, 0, 0] + MDCheckbox: + id: chkbox + size_hint: None, None + size: dp(48), dp(50) + # active: True + halign: 'center' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Only connect to onion services(*.onion)") + halign: 'left' + pos_hint: {'x': 0, 'y': 0} + BoxLayout: + orientation: 'vertical' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Bandwidth limit") + halign: 'left' + bold: True + BoxLayout: + size_hint_y: None + orientation: 'horizontal' + padding: [30, 0, 0, 0] + height: dp(30) + self.minimum_height + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Maximum download rate (kB/s):[0:unlimited]") + halign: 'left' + MDTextFieldRect: + size_hint: None, None + size: app.window_size[0]/2, dp(30) + hint_text: app.tr._('0') + pos_hint: {'center_y': .5, 'center_x': .5} + input_filter: "int" + BoxLayout: + size_hint_y: None + orientation: 'horizontal' + padding: [30, 0, 0, 0] + height: dp(30) + self.minimum_height + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Maximum upload rate (kB/s):[0:unlimited]") + halign: 'left' + MDTextFieldRect: + size_hint: None, None + size: app.window_size[0]/2, dp(30) + hint_text: '0' + pos_hint: {'center_y': .5, 'center_x': .5} + input_filter: "int" + BoxLayout: + size_hint_y: None + orientation: 'horizontal' + padding: [30, 0, 0, 0] + height: dp(30) + self.minimum_height + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Maximum outbound connections:[0:none]") + halign: 'left' + MDTextFieldRect: + size_hint: None, None + size: app.window_size[0]/2, dp(30) + hint_text: '8' + pos_hint: {'center_y': .5, 'center_x': .5} + input_filter: "int" + BoxLayout: + spacing:5 + orientation: 'horizontal' + # pos_hint: {'x':.76} + + MDRaisedButton: + text: app.tr._('Apply') + Tab: + text: 'Demanded Difficulty' + ScrollView: + do_scroll_x: False + + BoxLayout: + size_hint_y: None + orientation: 'vertical' + height: dp(300) + self.minimum_height + padding: 10 + BoxLayout: + id: box_height + orientation: 'vertical' + # MDLabel: + # font_style: 'Body1' + # theme_text_color: 'Primary' + # text: app.tr._("Listening port") + # halign: 'left' + # bold: True + + # BoxLayout: + # size_hint_y: None + # orientation: 'vertical' + # height: dp(210 if app.app_platform == 'android' else 100)+ self.minimum_height + # padding: 20 + # # spacing: 10 + # BoxLayout: + # # size_hint_y: None + # id: box1_height + # # orientation: 'vertical' + # # height: dp(100) + self.minimum_height + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + # text: app.tr._(root.exp_text) + text: "\n\n\nWhen someone sends you a message, their computer must first complete some work. The difficulty of this work, by default, is 1. You may raise this default for new addresses you create by changing the values here. Any new addresses you create will require senders to meet the higher difficulty. There is one exception: if you add a friend or acquaintance to your address book, Bitmessage will automatically notify them when you next send a message that they need only complete the minimum amount of work: difficulty 1.\n\n" + halign: 'left' + + BoxLayout: + orientation: 'horizontal' + padding: 5 + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Total difficulty:") + halign: 'left' + MDTextFieldRect: + size_hint: None, None + size: dp(app.window_size[0]/4), dp(30) + hint_text: app.tr._('00000.0') + pos_hint: {'center_y': .5, 'center_x': .5} + input_filter: "int" + + BoxLayout: + # size_hint_y: None + id: box1_height + orientation: 'vertical' + padding: 5 + # height: dp(100) + self.minimum_height + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + # text: app.tr._(root.exp_text) + text: "The 'Total difficulty' affects the absolute amount of work the sender must complete. Doubling this value doubles the amount of work." + halign: 'left' + + BoxLayout: + orientation: 'horizontal' + spacing: 0 + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Small message difficulty:") + halign: 'left' + MDTextFieldRect: + size_hint: None, None + size: dp(app.window_size[0]/4), dp(30) + hint_text: app.tr._('00000.0') + pos_hint: {'center_y': .5, 'center_x': .5} + input_filter: "int" + + + BoxLayout: + size_hint_y: None + padding: 0 + id: box1_height + orientation: 'vertical' + # height: dp(100) + self.minimum_height + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + # text: app.tr._(root.exp_text) + text: "The 'Small message difficulty' mostly only affects the difficulty of sending small messages. Doubling this value makes it almost twice as difficult to send a small message but doesn't really affect large messages." + halign: 'left' + + + # BoxLayout: + # id: box2_height + # size_hint_y: None + # orientation: 'vertical' + # height: dp(30) + self.minimum_height + # MDLabel: + # font_style: 'Body1' + # theme_text_color: 'Primary' + # text: app.tr._("Leave these input fields blank for the default behavior.") + # halign: 'left' + # BoxLayout: + # size_hint_y: None + # orientation: 'vertical' + # padding: [10, 0, 0, 0] + # height: dp(50) + self.minimum_height + # BoxLayout: + # orientation: 'horizontal' + # MDLabel: + # font_style: 'Body1' + # theme_text_color: 'Primary' + # text: app.tr._("Give up after") + # halign: 'left' + # MDTextFieldRect: + # size_hint: None, None + # size: dp(70), dp(30) + # text: app.tr._('0') + # # pos_hint: {'center_y': .5, 'center_x': .5} + # input_filter: "int" + # MDLabel: + # font_style: 'Body1' + # theme_text_color: 'Primary' + # text: app.tr._("days and") + # halign: 'left' + # MDTextFieldRect: + # size_hint: None, None + # size: dp(70), dp(30) + # text: '0' + # # pos_hint: {'center_y': .5, 'center_x': .5} + # input_filter: "int" + # MDLabel: + # font_style: 'Body1' + # theme_text_color: 'Primary' + # text: "months" + # halign: 'left' + BoxLayout: + size_hint_y: None + spacing:10 + orientation: 'horizontal' + # pos_hint: {'left': 0} + # pos_hint: {'x':.75} + height: dp(10) + self.minimum_height + MDRaisedButton: + text: app.tr._('Cancel') + MDRaisedButton: + text: app.tr._('Apply') + + Tab: + text: 'Max acceptable Difficulty' + ScrollView: + do_scroll_x: False + BoxLayout: + size_hint_y: None + orientation: 'vertical' + height: dp(210 if app.app_platform == 'android' else 100)+ self.minimum_height + padding: 20 + + # spacing: 10 + BoxLayout: + # size_hint_y: None + id: box1_height + orientation: 'vertical' + spacing: 10 + + # pos_hint: {'x': 0, 'y': 0.2} + # height: dp(100) + self.minimum_height + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + # text: app.tr._(root.exp_text) + text: "\n\n\nHere you may set the maximum amount of work you are willing to do to send a message to another person. Setting these values to 0 means that any value is acceptable." + halign: 'left' + # BoxLayout: + # id: box2_height + # size_hint_y: None + # orientation: 'vertical' + # height: dp(40) + self.minimum_height + # BoxLayout: + # size_hint_y: None + # orientation: 'vertical' + # padding: [10, 0, 0, 0] + # height: dp(50) + self.minimum_height + + GridLayout: + cols: 2 + padding: [10, 0, 0, 0] + + BoxLayout: + size_hint_y: None + orientation: 'vertical' + padding: [10, 0, 0, 0] + spacing: 10 + height: dp(50) + self.minimum_height + BoxLayout: + orientation: 'horizontal' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Maximum acceptable total difficulty:") + halign: 'left' + MDTextFieldRect: + size_hint: None, None + size: dp(app.window_size[0]/4), dp(30) + hint_text: app.tr._('00000.0') + pos_hint: {'center_y': .5, 'center_x': .5} + input_filter: "int" + + BoxLayout: + orientation: 'horizontal' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Hardware GPU acceleration (OpenCL):") + halign: 'left' + MDDropDownItem: + id: dropdown_item + text: "None" + pos_hint: {"center_x": 0, "center_y": 0} + # current_item: "Item 0" + # on_release: root.menu.open() + + # BoxLayout: + # size_hint_y: None + # spacing:5 + # orientation: 'horizontal' + # pos_hint: {'center_y': .4, 'center_x': 1.15} + # halign: 'right' + + BoxLayout: + size_hint_y: None + spacing:5 + orientation: 'horizontal' + pos_hint: {'center_y': 1, 'center_x': 1.15} + halign: 'right' + # pos_hint: {'left': 0} + # pos_hint: {'x':.75} + height: dp(50) + self.minimum_height + MDRaisedButton: + text: app.tr._('Cancel') + MDRaisedButton: + text: app.tr._('OK') + Tab: + text: 'Resends Expire' + ScrollView: + do_scroll_x: False + BoxLayout: + size_hint_y: None + orientation: 'vertical' + height: dp(210 if app.app_platform == 'android' else 100)+ self.minimum_height + padding: 20 + # spacing: 10 + BoxLayout: + # size_hint_y: None + id: box1_height + orientation: 'vertical' + # height: dp(100) + self.minimum_height + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + # text: app.tr._(root.exp_text) + text: "By default, if you send a message to someone and he is offline for more than two days, Bitmessage will send the message again after an additional two days. This will be continued with exponential backoff forever; messages will be resent after 5, 10, 20 days ect. until the receiver acknowledges them. Here you may change that behavior by having Bitmessage give up after a certain number of days or months." + halign: 'left' + BoxLayout: + id: box2_height + size_hint_y: None + orientation: 'vertical' + height: dp(30) + self.minimum_height + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Leave these input fields blank for the default behavior.") + halign: 'left' + BoxLayout: + size_hint_y: None + orientation: 'vertical' + padding: [10, 0, 0, 0] + height: dp(50) + self.minimum_height + BoxLayout: + orientation: 'horizontal' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Give up after") + halign: 'left' + MDTextFieldRect: + size_hint: None, None + size: dp(70), dp(30) + text: app.tr._('0') + pos_hint: {'center_y': .5, 'center_x': .5} + input_filter: "int" + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("days and") + halign: 'left' + MDTextFieldRect: + size_hint: None, None + size: dp(70), dp(30) + text: '0' + pos_hint: {'center_y': .5, 'center_x': .5} + input_filter: "int" + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: "months" + halign: 'left' + BoxLayout: + size_hint_y: None + spacing:5 + orientation: 'horizontal' + # pos_hint: {'left': 0} + # pos_hint: {'x':.75} + height: dp(50) + self.minimum_height + # MDRaisedButton: + # text: app.tr._('Cancel') + MDRaisedButton: + text: app.tr._('Apply') + + Tab: + text: 'Namecoin Integration' + ScrollView: + do_scroll_x: False + BoxLayout: + size_hint_y: None + orientation: 'vertical' + height: dp(210 if app.app_platform == 'android' else 100)+ self.minimum_height + padding: 20 + + # spacing: 10 + BoxLayout: + # size_hint_y: None + id: box1_height + orientation: 'vertical' + spacing: 10 + + # pos_hint: {'x': 0, 'y': 0.2} + # height: dp(100) + self.minimum_height + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + # text: app.tr._(root.exp_text) + text: "\n\n\n\n\n\nBitmessage can utilize a different Bitcoin-based program called Namecoin to make addresses human-friendly. For example, instead of having to tell your friend your long Bitmessage address, you can simply tell him to send a message to test.\n\n(Getting your own Bitmessage address into Namecoin is still rather difficult).\n\nBitmessage can use either namecoind directly or a running nmcontrol instance\n\n" + halign: 'left' + + BoxLayout: + id: box2_height + size_hint_y: None + orientation: 'vertical' + height: dp(40) + self.minimum_height + BoxLayout: + size_hint_y: None + orientation: 'vertical' + padding: [10, 0, 0, 0] + height: dp(50) + self.minimum_height + + BoxLayout: + orientation: 'horizontal' + padding: [10, 0, 0, 0] + + BoxLayout: + orientation: 'horizontal' + + # padding_left: 10 + # MDCheckbox: + # id: chkbox + # size_hint: None, None + # size: dp(48), dp(50) + # # active: True + # halign: 'center' + # MDLabel: + # font_style: 'Body1' + # theme_text_color: 'Primary' + # text: app.tr._("UPnP") + # halign: 'left' + # pos_hint: {'x': 0, 'y': 0} + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Connect to:") + halign: 'left' + + # MDCheckbox: + # id: chkbox + # size_hint: None, None + # size: dp(48), dp(50) + # # active: True + # halign: 'center' + Check: + active: True + pos_hint: {'x': 0, 'y': -0.2} + + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Namecoind") + halign: 'left' + pos_hint: {'x': 0, 'y': 0} + + Check: + active: False + pos_hint: {'x': 0, 'y': -0.2} + + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("NMControl") + halign: 'left' + pos_hint: {'x': 0, 'y': 0} + + GridLayout: + cols: 2 + padding: [10, 0, 0, 0] + + BoxLayout: + size_hint_y: None + orientation: 'vertical' + padding: [30, 0, 0, 0] + spacing: 10 + height: dp(100) + self.minimum_height + BoxLayout: + orientation: 'horizontal' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("hostname:") + halign: 'left' + MDTextFieldRect: + size_hint: None, None + size: dp(app.window_size[0]/4), dp(30) + hint_text: app.tr._('localhost') + pos_hint: {'center_y': .5, 'center_x': .5} + BoxLayout: + orientation: 'horizontal' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Port:") + halign: 'left' + # TextInput: + # size_hint: None, None + # hint_text: '9050' + # size: dp(app.window_size[0]/4), dp(30) + # input_filter: "int" + # readonly: False + # multiline: False + # font_size: '15sp' + MDTextFieldRect: + size_hint: None, None + size: dp(app.window_size[0]/4), dp(30) + hint_text: app.tr._('9050') + pos_hint: {'center_y': .5, 'center_x': .5} + input_filter: "int" + BoxLayout: + orientation: 'horizontal' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Username:") + halign: 'left' + MDTextFieldRect: + size_hint: None, None + size: dp(app.window_size[0]/4), dp(30) + pos_hint: {'center_y': .5, 'center_x': .5} + BoxLayout: + orientation: 'horizontal' + MDLabel: + font_style: 'Body1' + theme_text_color: 'Primary' + text: app.tr._("Password:") + halign: 'left' + + MDTextFieldRect: + size_hint: None, None + size: dp(app.window_size[0]/4), dp(30) + pos_hint: {'center_y': .5, 'center_x': .5} + password: True + + + BoxLayout: + size_hint_y: None + spacing:5 + orientation: 'horizontal' + pos_hint: {'center_y': .4, 'center_x': 1.15} + halign: 'right' + # pos_hint: {'left': 0} + # pos_hint: {'x':.75} + height: dp(50) + self.minimum_height + MDRaisedButton: + text: app.tr._('Cancel') + MDRaisedButton: + text: app.tr._('Apply') + MDRaisedButton: + text: app.tr._('OK') + Loader: \ No newline at end of file diff --git a/src/tests/mock/pybitmessage/kv/trash.kv b/src/tests/mock/pybitmessage/kv/trash.kv new file mode 100644 index 00000000..97bcf7d7 --- /dev/null +++ b/src/tests/mock/pybitmessage/kv/trash.kv @@ -0,0 +1,25 @@ +: + name: 'trash' + BoxLayout: + orientation: 'vertical' + spacing: dp(5) + GridLayout: + id: identi_tag + padding: [20, 20, 0, 5] + spacing: dp(5) + cols: 1 + size_hint_y: None + height: self.minimum_height + MDLabel: + id: tag_label + text: '' + font_style: 'Subtitle2' + BoxLayout: + orientation:'vertical' + ScrollView: + id: scroll_y + do_scroll_x: False + MDList: + id: ml + Loader: + ComposerButton: diff --git a/src/tests/mock/pybitmessage/main.kv b/src/tests/mock/pybitmessage/main.kv new file mode 100644 index 00000000..40adbe70 --- /dev/null +++ b/src/tests/mock/pybitmessage/main.kv @@ -0,0 +1,422 @@ +#:import IconLeftWidget kivymd.uix.list.IconLeftWidget +#:import images_path kivymd.images_path +#:import Spinner kivy.uix.spinner.Spinner +#:import Factory kivy.factory.Factory + +#:import MDCheckbox kivymd.uix.selectioncontrol.MDCheckbox +#:import MDList kivymd.uix.list.MDList +#:import OneLineListItem kivymd.uix.list.OneLineListItem +#:import MDTextField kivymd.uix.textfield.MDTextField +#:import get_color_from_hex kivy.utils.get_color_from_hex +#:import MDCard kivymd.uix.card.MDCard +#:import colors kivymd.color_definitions.colors +#:import MDTabs kivymd.uix.tab.MDTabs +#:import MDFloatingActionButton kivymd.uix.button.MDFloatingActionButton +#:import Factory kivy.factory.Factory +#:import MDScrollViewRefreshLayout kivymd.uix.refreshlayout.MDScrollViewRefreshLayout +#:import MDSpinner kivymd.uix.spinner.MDSpinner +#:import MDTabsBase kivymd.uix.tab.MDTabsBase +##:import ZBarSymbol pyzbar.pyzbar.ZBarSymbol + + +#:set color_button (0.784, 0.443, 0.216, 1) # brown +#:set color_button_pressed (0.659, 0.522, 0.431, 1) # darker brown +#:set color_font (0.957, 0.890, 0.843, 1) # off white + +: + font_size: '12.5sp' + #background_color: color_button if self.state == 'down' else color_button_pressed + #background_down: 'atlas://data/images/defaulttheme/button' + background_normal: 'atlas://data/images/defaulttheme/textinput_active' + background_color: app.theme_cls.primary_color + # text_autoupdate: True + color: color_font + + + #on_press: root.active = not root.active + on_press: root.currentlyActive() + active_color: root.theme_cls.primary_color if root.active else root.theme_cls.text_color + + IconLeftWidget: + icon: root.icon + theme_text_color: "Custom" + text_color: root.active_color + + BadgeText: + id: badge_txt + text: f"{root.badge_text}" + theme_text_color: "Custom" + #text_color: root.active_color + halign: 'right' + +: + canvas: + Color: + rgba: self.theme_cls.divider_color + Line: + points: root.x, root.y + dp(8), root.x + self.width, root.y + dp(8) + + + + BoxLayout: + orientation: 'vertical' + + FloatLayout: + size_hint_y: None + height: "200dp" + + MDIconButton: + id: reset_image + icon: "refresh" + x: root.parent.x + dp(10) + pos_hint: {"top": 1, 'left': 1} + color: [1,0,0,1] + on_release: app.rest_default_avatar_img() + theme_text_color: "Custom" + text_color: app.theme_cls.primary_color + # opacity: 1 if app.current_address_label() else 0 + # disabled: False if app.current_address_label() else True + opacity: 0 + disabled: True + + MDIconButton: + id: file_manager + icon: "file-image" + x: root.parent.x + dp(10) + pos_hint: {"top": 1, 'right': 1} + color: [1,0,0,1] + on_release: app.file_manager_open() + # md_bg_color: app.theme_cls.primary_color + theme_text_color: "Custom" + text_color: app.theme_cls.primary_color + opacity: 1 if app.current_address_label() else 0 + disabled: False if app.current_address_label() else True + + BoxLayout: + id: top_box + size_hint_y: None + height: "200dp" + #padding: "10dp" + x: root.parent.x + pos_hint: {"top": 1} + Image: + #source: './images/drawer_logo1.png' + source: app.get_default_logo(self) + + ScrollView: + id: scroll_y + pos_hint: {"top": 1} + + GridLayout: + id: box_item + cols: 1 + size_hint_y: None + height: self.minimum_height + NavigationDrawerDivider: + NavigationDrawerSubheader: + text: app.tr._('Accounts') + #text: app.tr._('Hello World') + height:"35dp" + NavigationItem: + # size: 50,50 + height: dp(48) + CustomSpinner: + id: btn + pos_hint:{"x":0,"y":0} + option_cls: Factory.get("MySpinnerOption") + font_size: '12.5sp' + text: app.getDefaultAccData(self) + color: color_font + background_normal: '' + background_color: app.theme_cls.primary_color + on_text:app.getCurrentAccountData(self.text) + ArrowImg: + NavigationItem: + id: inbox_cnt + text: app.tr._('Inbox') + #text: app.tr._('Hello World') + icon: 'email-open' + divider: None + on_release: app.root.ids.scr_mngr.current = 'inbox' + on_release: root.parent.set_state() + on_press: app.load_screen(self) + NavigationItem: + id: send_cnt + text: app.tr._('Sent') + icon: 'send' + divider: None + on_release: app.root.ids.scr_mngr.current = 'sent' + on_release: root.parent.set_state() + NavigationItem: + id: draft_cnt + text: app.tr._('Draft') + icon: 'message-draw' + divider: None + on_release: app.root.ids.scr_mngr.current = 'draft' + on_release: root.parent.set_state() + NavigationItem: + id: trash_cnt + text: app.tr._('Trash') + icon: 'delete' + divider: None + on_release: app.root.ids.scr_mngr.current = 'trash' + on_press: root.parent.set_state() + on_press: app.load_screen(self) + NavigationItem: + id: allmail_cnt + text: app.tr._('All Mails') + icon: 'mailbox' + divider: None + on_release: app.root.ids.scr_mngr.current = 'allmails' + on_release: root.parent.set_state() + on_press: app.load_screen(self) + # NavigationItem: + # id: chat_rm + # text: app.tr._('Chat Room') + # icon: 'wechat' + # divider: None + # on_release: app.root.ids.scr_mngr.current = 'chlist' + # on_release: root.parent.set_state() + NavigationDrawerDivider: + NavigationDrawerSubheader: + text: app.tr._("All labels") + NavigationItem: + text: app.tr._('Address Book') + icon: 'book-multiple' + divider: None + on_release: app.root.ids.scr_mngr.current = 'addressbook' + on_release: root.parent.set_state() + NavigationItem: + text: app.tr._('Settings') + icon: 'application-settings' + divider: None + on_release: app.root.ids.scr_mngr.current = 'set' + on_release: root.parent.set_state() + NavigationItem: + text: app.tr._('Purchase') + icon: 'shopping' + divider: None + on_release: app.root.ids.scr_mngr.current = 'payment' + on_release: root.parent.set_state() + # NavigationItem: + # text: app.tr._('Credits') + # icon: 'wallet' + # divider: None + # on_release: app.root.ids.scr_mngr.current = 'credits' + # on_release: root.parent.set_state() + NavigationItem: + text: app.tr._('New address') + icon: 'account-plus' + divider: None + on_release: app.root.ids.scr_mngr.current = 'login' + on_release: root.parent.set_state() + on_press: app.reset_login_screen() + NavigationItem: + text: app.tr._('Network status') + icon: 'server-network' + divider: None + on_release: app.root.ids.scr_mngr.current = 'networkstat' + on_release: root.parent.set_state() + NavigationItem: + text: app.tr._('My addresses') + icon: 'account-multiple' + divider: None + on_release: app.root.ids.scr_mngr.current = 'myaddress' + on_release: root.parent.set_state() + +MDNavigationLayout: + id: nav_layout + + MDToolbar: + id: toolbar + title: app.current_address_label() + opacity: 1 if app.addressexist() else 0 + disabled: False if app.addressexist() else True + pos_hint: {"top": 1} + md_bg_color: app.theme_cls.primary_color + elevation: 10 + left_action_items: [['menu', lambda x: nav_drawer.set_state("toggle")]] + right_action_items: [['account-plus', lambda x: app.addingtoaddressbook()]] + + ScreenManager: + id: scr_mngr + size_hint_y: None + height: root.height - toolbar.height + Inbox: + id:sc1 +# # Page: +# # id:sc2 + Create: + id:sc3 + Sent: + id:sc4 + Trash: + id:sc5 + Login: + id:sc6 + Random: + id:sc7 + # Spam: + # id:sc8 + Setting: + id:sc9 + MyAddress: + id:sc10 + AddressBook: + id:sc11 + Payment: + id:sc12 + NetworkStat: + id:sc13 + MailDetail: + id:sc14 + ShowQRCode: + id:sc15 + Draft: + id:sc16 + Allmails: + id:sc17 + # Credits: + # id:sc18 + # Starred: + # id:sc19 + # Archieve: + # id:sc20 + # ChatRoom: + # id:sc21 + # ChatList: + # id:sc22 + ScanScreen: + id:sc23 + + MDNavigationDrawer: + id: nav_drawer + + ContentNavigationDrawer: + id: content_drawer + + +: + source: app.image_path +('/down-arrow.png' if self.parent.is_open == True else '/right-arrow.png') + size: 15, 15 + x: self.parent.x + self.parent.width - self.width - 5 + y: self.parent.y + self.parent.height/2 - self.height + 5 + + +: + # id: search_bar + size_hint_y: None + height: self.minimum_height + + MDIconButton: + icon: 'magnify' + + MDTextField: + id: search_field + hint_text: 'Search' + on_text: app.searchQuery(self) + canvas.before: + Color: + rgba: (0,0,0,1) + + +: + id: spinner + size_hint: None, None + size: dp(46), dp(46) + pos_hint: {'center_x': 0.5, 'center_y': 0.5} + active: False + +: + size_hint_y: None + height: dp(56) + spacing: '10dp' + pos_hint: {'center_x':0.45, 'center_y': .1} + + Widget: + + MDFloatingActionButton: + icon: 'plus' + opposite_colors: True + elevation_normal: 8 + md_bg_color: [0.941, 0, 0,1] + on_press: app.root.ids.scr_mngr.current = 'create' + on_press: app.clear_composer() + + +: + size_hint_y: None + height: content.height + + MDCardSwipeLayerBox: + padding: "8dp" + + MDIconButton: + id: delete_msg + icon: "trash-can" + pos_hint: {"center_y": .5} + md_bg_color: (1, 0, 0, 1) + disabled: True + + MDCardSwipeFrontBox: + + TwoLineAvatarIconListItem: + id: content + text: root.text + _no_ripple_effect: True + + AvatarSampleWidget: + id: avater_img + # source: './images/kivy/avatar.png' + source: None + + TimeTagRightSampleWidget: + id: time_tag + text: '' + font_size: "11sp" + font_style: "Caption" + size: [120, 140] if app.app_platform == "android" else [64, 80] + + +: + size_hint_y: None + height: content.height + + MDCardSwipeLayerBox: + padding: "8dp" + + MDIconButton: + id: delete_msg + icon: "trash-can" + pos_hint: {"center_y": .5} + md_bg_color: (1, 0, 0, 1) + disabled: True + + MDCardSwipeFrontBox: + + TwoLineAvatarIconListItem: + id: content + text: root.text + _no_ripple_effect: True + + AvatarSampleWidget: + id: avater_img + # source: './images/kivy/avatar.png' + source: None + + TimeTagRightSampleWidget: + id: time_tag + text: 'time' + font_size: "11sp" + font_style: "Caption" + size: [120, 140] if app.app_platform == "android" else [64, 80] + MDChip: + id: chip_tag + size_hint: (0.16 if app.app_platform == "android" else 0.08, None) + text: 'test' + icon: "" + pos_hint: {"center_x": 0.91 if app.app_platform == "android" else 0.94, "center_y": 0.3} + # height: dp(18) + height: '18dp' + text_color: (1,1,1,1) + radius: [8] diff --git a/src/tests/mock/pybitmessage/mpybit.py b/src/tests/mock/pybitmessage/mpybit.py new file mode 100644 index 00000000..4ed435af --- /dev/null +++ b/src/tests/mock/pybitmessage/mpybit.py @@ -0,0 +1,897 @@ +# pylint: disable=too-many-lines,import-error,no-name-in-module,unused-argument +# pylint: disable=too-many-ancestors,too-many-locals,useless-super-delegation +# pylint: disable=protected-access +# pylint: disable=import-outside-toplevel,ungrouped-imports,wrong-import-order,unused-import,arguments-differ +# pylint: disable=invalid-name,unnecessary-comprehension,broad-except,simplifiable-if-expression,no-member +# pylint: disable=too-many-return-statements + +""" +Bitmessage android(mobile) interface +""" + +from pybitmessage.get_platform import platform +import os +from pybitmessage.bmconfigparser import BMConfigParser +from functools import partial +from kivymd.app import MDApp +from kivy.clock import Clock +from kivy.core.clipboard import Clipboard +from kivy.core.window import Window +from kivy.lang import Builder +from kivy.metrics import dp +from kivy.properties import ( + BooleanProperty, + ListProperty, + NumericProperty, + ObjectProperty, + StringProperty +) +from kivy.uix.boxlayout import BoxLayout +from kivy.uix.spinner import Spinner +from kivymd.uix.dialog import MDDialog +from kivymd.uix.label import MDLabel +from kivymd.uix.button import MDRaisedButton +from kivymd.uix.list import ( + IRightBodyTouch, + OneLineAvatarIconListItem, + OneLineListItem +) + +from kivy.uix.screenmanager import RiseInTransition, SlideTransition, FallOutTransition + +from pybitmessage import queues +from pybitmessage import state +from kivymd.uix.bottomsheet import MDCustomBottomSheet + +from kivy.lang import Observable +import ast + +from pybitmessage.baseclass.common import toast + + +if platform != "android": + from kivy.config import Config + Config.set("input", "mouse", "mouse, multitouch_on_demand") +elif platform == "android": + from jnius import autoclass, cast + from android.runnable import run_on_ui_thread + from android import python_act as PythonActivity + + Toast = autoclass("android.widget.Toast") + String = autoclass("java.lang.String") + CharSequence = autoclass("java.lang.CharSequence") + context = PythonActivity.mActivity + + @run_on_ui_thread + def show_toast(text, length): + """Its showing toast on screen""" + t = Toast.makeText(context, text, length) + t.show() + + +with open(os.path.join(os.path.dirname(__file__), "screens_data.json")) as read_file: + all_data = ast.literal_eval(read_file.read()) + data_screens = list(all_data.keys()) + +for modules in data_screens: + exec(all_data[modules]['Import']) + +# pylint: disable=too-few-public-methods,too-many-arguments,attribute-defined-outside-init + + +class Lang(Observable): + observers = [] + lang = None + + def __init__(self, defaultlang): + super(Lang, self).__init__() + self.ugettext = None + self.lang = defaultlang + self.switch_lang(self.lang) + + def _(self, text): + # return self.ugettext(text) + return text + + def fbind(self, name, func, args, **kwargs): + if name == "_": + self.observers.append((func, args, kwargs)) + else: + return super(Lang, self).fbind(name, func, *largs, **kwargs) + + def funbind(self, name, func, args, **kwargs): + if name == "_": + key = (func, args, kwargs) + if key in self.observers: + self.observers.remove(key) + else: + return super(Lang, self).funbind(name, func, *args, **kwargs) + + def switch_lang(self, lang): + # get the right locales directory, and instanciate a gettext + # locale_dir = os.path.join(os.path.dirname(__file__), 'translations', 'mo', 'locales') + # locales = gettext.translation('langapp', locale_dir, languages=[lang]) + # self.ugettext = locales.gettext + + # update all the kv rules attached to this text + for func, largs, kwargs in self.observers: + func(largs, None, None) + + +class NavigationItem(OneLineAvatarIconListItem): + """NavigationItem class for kivy Ui""" + badge_text = StringProperty() + icon = StringProperty() + active = BooleanProperty(False) + + def currentlyActive(self): + """Currenly active""" + for nav_obj in self.parent.children: + nav_obj.active = False + self.active = True + + +class NavigationDrawerDivider(OneLineListItem): + """ + A small full-width divider that can be placed + in the :class:`MDNavigationDrawer` + """ + + disabled = True + divider = None + _txt_top_pad = NumericProperty(dp(8)) + _txt_bot_pad = NumericProperty(dp(8)) + + def __init__(self, **kwargs): + # pylint: disable=bad-super-call + super(OneLineListItem, self).__init__(**kwargs) + self.height = dp(16) + + +class NavigationDrawerSubheader(OneLineListItem): + """ + A subheader for separating content in :class:`MDNavigationDrawer` + + Works well alongside :class:`NavigationDrawerDivider` + """ + + disabled = True + divider = None + theme_text_color = 'Secondary' + + +class ContentNavigationDrawer(BoxLayout): + """ContentNavigationDrawer class for kivy Uir""" + + def __init__(self, *args, **kwargs): + """Method used for contentNavigationDrawer""" + super(ContentNavigationDrawer, self).__init__(*args, **kwargs) + Clock.schedule_once(self.init_ui, 0) + + def init_ui(self, dt=0): + """Clock Schdule for class contentNavigationDrawer""" + self.ids.scroll_y.bind(scroll_y=self.check_scroll_y) + + def check_scroll_y(self, instance, somethingelse): + """show data on scroll down""" + if self.ids.btn.is_open: + self.ids.btn.is_open = False + + +class BadgeText(IRightBodyTouch, MDLabel): + """BadgeText class for kivy Ui""" + + +class CustomSpinner(Spinner): + """CustomSpinner class for kivy Ui""" + + def __init__(self, *args, **kwargs): + """Method used for setting size of spinner""" + super(CustomSpinner, self).__init__(*args, **kwargs) + self.dropdown_cls.max_height = Window.size[1] / 3 + self.values = list(addr for addr in BMConfigParser().addresses() + if BMConfigParser().get(str(addr), 'enabled') == 'true') + + +class NavigateApp(MDApp): + """Navigation Layout of class""" + # pylint: disable=too-many-public-methods,inconsistent-return-statements + + # theme_cls = ThemeManager() + previous_date = ObjectProperty() + obj_1 = ObjectProperty() + variable_1 = ListProperty(addr for addr in BMConfigParser().addresses() + if BMConfigParser().get(str(addr), 'enabled') == 'true') + nav_drawer = ObjectProperty() + state.screen_density = Window.size + window_size = state.screen_density + app_platform = platform + title = "PyBitmessage" + imgstatus = False + count = 0 + manager_open = False + file_manager = None + state.imageDir = os.path.join('./images', 'kivy') + image_path = state.imageDir + tr = Lang("en") # for changing in franch replace en with fr + + def build(self): + """Method builds the widget""" + for kv in data_screens: + Builder.load_file( + os.path.join( + os.path.dirname(__file__), + 'kv', + # f'{all_data[kv]["kv_string"]}.kv', + '{0}.kv'.format(all_data[kv]["kv_string"]), + ) + ) + # self.obj_1 = AddressBook() + # kivysignalthread = UIkivySignaler() + # kivysignalthread.daemon = True + # kivysignalthread.start() + Window.bind(on_keyboard=self.on_key, on_request_close=self.on_request_close) + return Builder.load_file( + os.path.join(os.path.dirname(__file__), 'main.kv')) + + def run(self): + """Running the widgets""" + super(NavigateApp, self).run() + + @staticmethod + def showmeaddresses(name="text"): + """Show the addresses in spinner to make as dropdown""" + if name == "text": + if BMConfigParser().addresses(): + return BMConfigParser().addresses()[0][:16] + '..' + return "textdemo" + elif name == "values": + if BMConfigParser().addresses(): + return [address[:16] + '..' + for address in BMConfigParser().addresses()] + return "valuesdemo" + + def getCurrentAccountData(self, text): + """Get Current Address Account Data""" + if text != '': + if os.path.exists(state.imageDir + '/default_identicon/{}.png'.format(text)): + self.load_selected_Image(text) + else: + self.root.ids.content_drawer.ids.reset_image.opacity = 0 + self.root.ids.content_drawer.ids.reset_image.disabled = True + address_label = self.current_address_label( + BMConfigParser().get(text, 'label'), text) + + self.root_window.children[1].ids.toolbar.title = address_label + state.association = text + state.searcing_text = '' + # LoadingPopup().open() + self.set_message_count() + for nav_obj in self.root.ids.content_drawer.children[ + 0].children[0].children[0].children: + nav_obj.active = True if nav_obj.text == 'Inbox' else False + self.fileManagerSetting() + Clock.schedule_once(self.setCurrentAccountData, 0.5) + + def fileManagerSetting(self): + """This method is for file manager setting""" + if not self.root.ids.content_drawer.ids.file_manager.opacity and \ + self.root.ids.content_drawer.ids.file_manager.disabled: + self.root.ids.content_drawer.ids.file_manager.opacity = 1 + self.root.ids.content_drawer.ids.file_manager.disabled = False + + def setCurrentAccountData(self, dt=0): + """This method set the current accout data on all the screens""" + self.root.ids.sc1.ids.ml.clear_widgets() + self.root.ids.sc1.loadMessagelist(state.association) + + self.root.ids.sc4.ids.ml.clear_widgets() + self.root.ids.sc4.children[2].children[2].ids.search_field.text = '' + self.root.ids.sc4.loadSent(state.association) + + self.root.ids.sc16.clear_widgets() + self.root.ids.sc16.add_widget(Draft()) + + self.root.ids.sc5.clear_widgets() + self.root.ids.sc5.add_widget(Trash()) + + self.root.ids.sc17.clear_widgets() + self.root.ids.sc17.add_widget(Allmails()) + + self.root.ids.sc10.ids.ml.clear_widgets() + self.root.ids.sc10.init_ui() + + self.root.ids.scr_mngr.current = 'inbox' + + @staticmethod + def getCurrentAccount(): + """It uses to get current account label""" + if state.association: + return state.association + return "Bitmessage Login" + + # @staticmethod + def addingtoaddressbook(self): + """Adding to address Book""" + width = .85 if platform == 'android' else .8 + self.add_popup = MDDialog( + title='Add contact\'s', + type="custom", + size_hint=(width, .23), + content_cls=GrashofPopup(), + buttons=[ + MDRaisedButton( + text="Save", + on_release=self.savecontact, + ), + MDRaisedButton( + text="Cancel", + on_release=self.close_pop, + ), + MDRaisedButton( + text="Scan QR code", + on_release=self.scan_qr_code, + ), + ], + ) + # self.add_popup.set_normal_height() + self.add_popup.auto_dismiss = False + self.add_popup.open() + # p = GrashofPopup() + # p.open() + + def scan_qr_code(self, instance): + """this method is used for showing QR code scanner""" + if self.is_camara_attached(): + self.add_popup.dismiss() + self.root.ids.sc23.get_screen(self.root.ids.scr_mngr.current, self.add_popup) + self.root.ids.scr_mngr.current = 'scanscreen' + else: + altet_txt = ( + 'Currently this feature is not avaialbe!' if platform == 'android' else 'Camera is not available!') + self.add_popup.dismiss() + toast(altet_txt) + + def is_camara_attached(self): + """This method is for checking is camera available or not""" + self.root.ids.sc23.check_camera() + is_available = self.root.ids.sc23.camera_avaialbe + return is_available + + def savecontact(self, instance): + """Method is used for saving contacts""" + pupup_obj = self.add_popup.content_cls + label = pupup_obj.ids.label.text.strip() + address = pupup_obj.ids.address.text.strip() + if label == '' and address == '': + pupup_obj.ids.label.focus = True + pupup_obj.ids.address.focus = True + elif address == '': + pupup_obj.ids.address.focus = True + elif label == '': + pupup_obj.ids.label.focus = True + else: + pupup_obj.ids.address.focus = True + # pupup_obj.ids.label.focus = True + + stored_address = [addr[1] for addr in []] + stored_labels = [labels[0] for labels in []] + if label and address and address not in stored_address \ + and label not in stored_labels and pupup_obj.valid: + queues.UISignalQueue.put(('rerenderAddressBook', '')) + self.add_popup.dismiss() + try: + rootIds = self.root.ids + except Exception as e: + rootIds = state.kivyapp.root.ids + rootIds.sc11.ids.ml.clear_widgets() + rootIds.sc11.loadAddresslist(None, 'All', '') + rootIds.scr_mngr.current = 'addressbook' + toast('Saved') + + def close_pop(self, instance): + """Pop is Canceled""" + self.add_popup.dismiss() + toast('Canceled') + + def getDefaultAccData(self, instance): + """Getting Default Account Data""" + if self.variable_1: + state.association = first_addr = self.variable_1[0] + return first_addr + return 'Select Address' + + def get_default_logo(self, instance): + """Getting default logo image""" + if self.variable_1: + first_addr = self.variable_1[0] + if BMConfigParser().get(str(first_addr), 'enabled') == 'true': + if os.path.exists( + state.imageDir + '/default_identicon/{}.png'.format(first_addr)): + return state.imageDir + '/default_identicon/{}.png'.format( + first_addr) + else: + return + return state.imageDir + '/drawer_logo1.png' + + @staticmethod + def addressexist(): + """Checking address existence""" + if BMConfigParser().addresses(): + return True + return False + + def on_key(self, window, key, *args): + # pylint: disable=inconsistent-return-statements, too-many-branches + """Method is used for going on previous screen""" + if key == 27: + if state.in_search_mode and self.root.ids.scr_mngr.current not in [ + "mailDetail", "create"]: + self.closeSearchScreen() + elif self.root.ids.scr_mngr.current == "mailDetail": + self.root.ids.scr_mngr.current = 'sent'\ + if state.detailPageType == 'sent' else 'inbox' \ + if state.detailPageType == 'inbox' else 'draft' + self.back_press() + if state.in_search_mode and state.searcing_text: + toolbar_obj = self.root.ids.toolbar + toolbar_obj.left_action_items = [ + ['arrow-left', lambda x: self.closeSearchScreen()]] + toolbar_obj.right_action_items = [] + self.root.ids.toolbar.title = '' + elif self.root.ids.scr_mngr.current == "create": + self.save_draft() + self.set_common_header() + state.in_composer = False + self.root.ids.scr_mngr.current = 'inbox' + elif self.root.ids.scr_mngr.current == "showqrcode": + self.set_common_header() + self.root.ids.scr_mngr.current = 'myaddress' + elif self.root.ids.scr_mngr.current == "random": + self.root.ids.scr_mngr.current = 'login' + elif self.root.ids.scr_mngr.current == 'pay-options': + self.set_common_header() + self.root.ids.scr_mngr.current = 'payment' + elif self.root.ids.scr_mngr.current == 'chroom': + if state.association: + address_label = self.current_address_label( + BMConfigParser().get( + state.association, 'label'), state.association) + self.root.ids.toolbar.title = address_label + self.set_common_header() + self.root.ids.scr_mngr.transition = FallOutTransition() + self.root.ids.scr_mngr.current = 'chlist' + self.root.ids.scr_mngr.transition = SlideTransition() + else: + if state.kivyapp.variable_1: + self.root.ids.scr_mngr.current = 'inbox' + self.root.ids.scr_mngr.transition.direction = 'right' + self.root.ids.scr_mngr.transition.bind(on_complete=self.reset) + return True + elif key == 13 and state.searcing_text and not state.in_composer: + if state.search_screen == 'inbox': + self.root.ids.sc1.children[1].active = True + Clock.schedule_once(self.search_callback, 0.5) + elif state.search_screen == 'addressbook': + self.root.ids.sc11.children[1].active = True + Clock.schedule_once(self.search_callback, 0.5) + elif state.search_screen == 'myaddress': + self.loadMyAddressScreen(True) + Clock.schedule_once(self.search_callback, 0.5) + elif state.search_screen == 'sent': + self.root.ids.sc4.children[1].active = True + Clock.schedule_once(self.search_callback, 0.5) + + def search_callback(self, dt=0): + """Show data after loader is loaded""" + if state.search_screen == 'inbox': + self.root.ids.sc1.ids.ml.clear_widgets() + self.root.ids.sc1.loadMessagelist(state.association) + self.root.ids.sc1.children[1].active = False + elif state.search_screen == 'addressbook': + self.root.ids.sc11.ids.ml.clear_widgets() + self.root.ids.sc11.loadAddresslist(None, 'All', '') + self.root.ids.sc11.children[1].active = False + elif state.search_screen == 'myaddress': + self.root.ids.sc10.ids.ml.clear_widgets() + self.root.ids.sc10.init_ui() + self.loadMyAddressScreen(False) + else: + self.root.ids.sc4.ids.ml.clear_widgets() + self.root.ids.sc4.loadSent(state.association) + self.root.ids.sc4.children[1].active = False + self.root.ids.scr_mngr.current = state.search_screen + + def loadMyAddressScreen(self, action): + """loadMyAddressScreen method spin the loader""" + if len(self.root.ids.sc10.children) <= 2: + self.root.ids.sc10.children[0].active = action + else: + self.root.ids.sc10.children[1].active = action + + def save_draft(self): + """Saving drafts messages""" + composer_objs = self.root + from_addr = str(self.root.ids.sc3.children[1].ids.ti.text) + # to_addr = str(self.root.ids.sc3.children[1].ids.txt_input.text) + if from_addr and state.detailPageType != 'draft' \ + and not state.in_sent_method: + Draft().draft_msg(composer_objs) + return + + def reset(self, *args): + """Set transition direction""" + self.root.ids.scr_mngr.transition.direction = 'left' + self.root.ids.scr_mngr.transition.unbind(on_complete=self.reset) + + @staticmethod + def status_dispatching(data): + """Dispatching Status acknowledgment""" + ackData, message = data + if state.ackdata == ackData: + state.status.status = message + + def clear_composer(self): + """If slow down, the new composer edit screen""" + self.set_navbar_for_composer() + composer_obj = self.root.ids.sc3.children[1].ids + composer_obj.ti.text = '' + composer_obj.btn.text = 'Select' + composer_obj.txt_input.text = '' + composer_obj.subject.text = '' + composer_obj.body.text = '' + state.in_composer = True + state.in_sent_method = False + + def set_navbar_for_composer(self): + """Clearing toolbar data when composer open""" + self.root.ids.toolbar.left_action_items = [ + ['arrow-left', lambda x: self.back_press()]] + self.root.ids.toolbar.right_action_items = [ + ['refresh', + lambda x: self.root.ids.sc3.children[1].reset_composer()], + ['send', + lambda x: self.root.ids.sc3.children[1].send(self)]] + + def set_toolbar_for_QrCode(self): + """This method is use for setting Qr code toolbar.""" + self.root.ids.toolbar.left_action_items = [ + ['arrow-left', lambda x: self.back_press()]] + self.root.ids.toolbar.right_action_items = [] + + def set_common_header(self): + """Common header for all window""" + self.root.ids.toolbar.right_action_items = [ + ['account-plus', lambda x: self.addingtoaddressbook()]] + # self.root.ids.toolbar.left_action_items = [ + # ['menu', lambda x: self.root.toggle_nav_drawer()]] + self.root.ids.toolbar.left_action_items = [ + ['menu', lambda x: self.root.ids.nav_drawer.set_state("toggle")]] + return + + def back_press(self): + """Method for, reverting composer to previous page""" + if self.root.ids.scr_mngr.current == 'create': + self.save_draft() + if self.root.ids.scr_mngr.current == \ + 'mailDetail' and state.in_search_mode: + toolbar_obj = self.root.ids.toolbar + toolbar_obj.left_action_items = [ + ['arrow-left', lambda x: self.closeSearchScreen()]] + toolbar_obj.right_action_items = [] + self.root.ids.toolbar.title = '' + else: + self.set_common_header() + if self.root.ids.scr_mngr.current == 'chroom' and state.association: + self.root.ids.scr_mngr.transition = FallOutTransition() + address_label = self.current_address_label( + BMConfigParser().get( + state.association, 'label'), state.association) + self.root.ids.toolbar.title = address_label + self.root.ids.scr_mngr.current = 'inbox' \ + if state.in_composer else 'allmails'\ + if state.is_allmail else state.detailPageType\ + if state.detailPageType else 'myaddress'\ + if self.root.ids.scr_mngr.current == 'showqrcode' else 'payment'\ + if self.root.ids.scr_mngr.current == 'pay-options' else 'chlist'\ + if self.root.ids.scr_mngr.current == 'chroom' else 'inbox' + if self.root.ids.scr_mngr.current == 'chlist': + self.root.ids.scr_mngr.transition = SlideTransition() + self.root.ids.scr_mngr.transition.direction = 'right' + self.root.ids.scr_mngr.transition.bind(on_complete=self.reset) + if state.is_allmail or state.detailPageType == 'draft': + state.is_allmail = False + state.detailPageType = '' + state.in_composer = False + + @staticmethod + def get_inbox_count(): + """Getting inbox count""" + pass + + @staticmethod + def get_sent_count(): + """Getting sent count""" + pass + + def set_message_count(self): + """Setting message count""" + pass + + def on_start(self): + """Setting message count""" + self.set_message_count() + + @staticmethod + def current_address_label(current_add_label=None, current_addr=None): + """Getting current address labels""" + addresses = [addr for addr in BMConfigParser().addresses() + if BMConfigParser().get(str(addr), 'enabled') == 'true'] + if addresses: + if current_add_label: + first_name = current_add_label + addr = current_addr + else: + addr = addresses[0] + first_name = BMConfigParser().get(addr, 'label') + if BMConfigParser().get(addr, 'enabled') != 'true': + return '' + f_name = first_name.split() + label = f_name[0][:14].capitalize() + '...' if len( + f_name[0]) > 15 else f_name[0].capitalize() + address = ' (' + addr + ')' + return label + address + return '' + + def searchQuery(self, instance): + """Showing searched mails""" + state.search_screen = self.root.ids.scr_mngr.current + state.searcing_text = str(instance.text).strip() + if instance.focus and state.searcing_text: + toolbar_obj = self.root.ids.toolbar + toolbar_obj.left_action_items = [ + ['arrow-left', lambda x: self.closeSearchScreen()]] + toolbar_obj.right_action_items = [] + self.root.ids.toolbar.title = '' + state.in_search_mode = True + + def closeSearchScreen(self): + """Function for close search screen""" + self.set_common_header() + if state.association: + address_label = self.current_address_label( + BMConfigParser().get( + state.association, 'label'), state.association) + self.root.ids.toolbar.title = address_label + state.searcing_text = '' + self.refreshScreen() + state.in_search_mode = False + + def refreshScreen(self): + """Method show search button only on inbox or sent screen""" + # pylint: disable=unused-variable + state.searcing_text = '' + if state.search_screen == 'inbox': + self.root.ids.sc1.ids.inbox_search.ids.search_field.text = '' + # try: + # self.root.ids.sc1.children[ + # 3].children[2].ids.search_field.text = '' + # except Exception: + # self.root.ids.sc1.children[ + # 2].children[2].ids.search_field.text = '' + self.root.ids.sc1.children[1].active = True + Clock.schedule_once(self.search_callback, 0.5) + elif state.search_screen == 'addressbook': + self.root.ids.sc11.ids.address_search.ids.search_field.text = '' + # self.root.ids.sc11.children[ + # 2].children[2].ids.search_field.text = '' + self.root.ids.sc11.children[ + 1].active = True + Clock.schedule_once(self.search_callback, 0.5) + elif state.search_screen == 'myaddress': + self.root.ids.sc10.ids.search_bar.ids.search_field.text = '' + # try: + # self.root.ids.sc10.children[ + # 1].children[2].ids.search_field.text = '' + # except Exception: + # self.root.ids.sc10.children[ + # 2].children[2].ids.search_field.text = '' + self.loadMyAddressScreen(True) + Clock.schedule_once(self.search_callback, 0.5) + else: + self.root.ids.sc4.ids.sent_search.ids.search_field.text = '' + # self.root.ids.sc4.children[ + # 2].children[2].ids.search_field.text = '' + self.root.ids.sc4.children[1].active = True + Clock.schedule_once(self.search_callback, 0.5) + return + + def set_mail_detail_header(self): + """Setting the details of the page""" + if state.association and state.in_search_mode: + address_label = self.current_address_label( + BMConfigParser().get( + state.association, 'label'), state.association) + self.root.ids.toolbar.title = address_label + toolbar_obj = self.root.ids.toolbar + toolbar_obj.left_action_items = [ + ['arrow-left', lambda x: self.back_press()]] + delete_btn = ['delete-forever', + lambda x: self.root.ids.sc14.delete_mail()] + dynamic_list = [] + if state.detailPageType == 'inbox': + dynamic_list = [ + ['reply', lambda x: self.root.ids.sc14.inbox_reply()], + delete_btn] + elif state.detailPageType == 'sent': + dynamic_list = [delete_btn] + elif state.detailPageType == 'draft': + dynamic_list = [ + ['pencil', lambda x: self.root.ids.sc14.write_msg(self)], + delete_btn] + toolbar_obj.right_action_items = dynamic_list + + def load_screen(self, instance): + """This method is used for loading screen on every click""" + if instance.text == 'Inbox': + self.root.ids.scr_mngr.current = 'inbox' + self.root.ids.sc1.children[1].active = True + elif instance.text == 'All Mails': + self.root.ids.scr_mngr.current = 'allmails' + try: + self.root.ids.sc17.children[1].active = True + except Exception: + self.root.ids.sc17.children[0].children[1].active = True + elif instance.text == 'Trash': + self.root.ids.scr_mngr.current = 'trash' + try: + self.root.ids.sc5.children[1].active = True + except Exception as e: + self.root.ids.sc5.children[0].children[1].active = True + Clock.schedule_once(partial(self.load_screen_callback, instance), 1) + + def load_screen_callback(self, instance, dt=0): + """This method is rotating loader for few seconds""" + if instance.text == 'Inbox': + self.root.ids.sc1.ids.ml.clear_widgets() + self.root.ids.sc1.loadMessagelist(state.association) + self.root.ids.sc1.children[1].active = False + elif instance.text == 'All Mails': + self.root.ids.sc17.clear_widgets() + self.root.ids.sc17.add_widget(Allmails()) + try: + self.root.ids.sc17.children[1].active = False + except Exception: + self.root.ids.sc17.children[0].children[1].active = False + elif instance.text == 'Trash': + # self.root.ids.sc5.ids.ml.clear_widgets() + # self.root.ids.sc5.init_ui(0) + self.root.ids.sc5.clear_widgets() + self.root.ids.sc5.add_widget(Trash()) + try: + self.root.ids.sc5.children[1].active = False + except Exception as e: + self.root.ids.sc5.children[0].children[1].active = False + + def on_request_close(self, *args): # pylint: disable=no-self-use + """This method is for app closing request""" + AppClosingPopup().open() + return True + + def file_manager_open(self): + """This method open the file manager of local system""" + from kivymd.uix.filemanager import MDFileManager + + if not self.file_manager: + self.file_manager = MDFileManager( + exit_manager=self.exit_manager, + select_path=self.select_path, + ext=['.png', '.jpg'] + ) + self.file_manager.previous = False + self.file_manager.current_path = '/' + if platform == 'android': + from android.permissions import request_permissions, Permission, check_permission + if check_permission(Permission.WRITE_EXTERNAL_STORAGE) and \ + check_permission(Permission.READ_EXTERNAL_STORAGE): + self.file_manager.show(os.getenv('EXTERNAL_STORAGE')) + self.manager_open = True + else: + request_permissions([Permission.WRITE_EXTERNAL_STORAGE, Permission.READ_EXTERNAL_STORAGE]) + else: + self.file_manager.show(os.environ["HOME"]) + self.manager_open = True + + def select_path(self, path): + """This method is used to save the select image""" + try: + from PIL import Image as PilImage + newImg = PilImage.open(path).resize((300, 300)) + if platform == 'android': + android_path = os.path.join( + os.environ['ANDROID_PRIVATE'] + '/app' + '/images' + '/kivy/') + if not os.path.exists(android_path + '/default_identicon/'): + os.makedirs(android_path + '/default_identicon/') + newImg.save('{1}/default_identicon/{0}.png'.format( + state.association, android_path)) + else: + if not os.path.exists(state.imageDir + '/default_identicon/'): + os.makedirs(state.imageDir + '/default_identicon/') + newImg.save(state.imageDir + '/default_identicon/{0}.png'.format(state.association)) + self.load_selected_Image(state.association) + toast('Image changed') + except Exception: + toast('Exit') + self.exit_manager() + + def exit_manager(self, *args): + """Called when the user reaches the root of the directory tree.""" + self.manager_open = False + self.file_manager.close() + + def load_selected_Image(self, curerentAddr): + """This method load the selected image on screen""" + top_box_obj = self.root.ids.content_drawer.ids.top_box.children[0] + # spinner_img_obj = self.root.ids.content_drawer.ids.btn.children[1] + # spinner_img_obj.source = top_box_obj.source ='./images/default_identicon/{0}.png'.format(curerentAddr) + top_box_obj.source = state.imageDir + '/default_identicon/{0}.png'.format(curerentAddr) + self.root.ids.content_drawer.ids.reset_image.opacity = 1 + self.root.ids.content_drawer.ids.reset_image.disabled = False + top_box_obj.reload() + # spinner_img_obj.reload() + + def rest_default_avatar_img(self): + """set default avatar generated image""" + img_path = state.imageDir + '/default_identicon/{}.png'.format(state.association) + try: + if os.path.exists(img_path): + os.remove(img_path) + self.root.ids.content_drawer.ids.reset_image.opacity = 0 + self.root.ids.content_drawer.ids.reset_image.disabled = True + except Exception as e: + pass + toast('Avatar reset') + + def copy_composer_text(self, text): # pylint: disable=no-self-use + """Copy the data from mail detail page""" + Clipboard.copy(text) + toast('Copied') + + def reset_login_screen(self): + """This method is used for clearing random screen""" + if self.root.ids.sc7.ids.add_random_bx.children: + self.root.ids.sc7.ids.add_random_bx.clear_widgets() + + def open_payment_layout(self, sku): + """It basically open up a payment layout for kivy Ui""" + pml = PaymentMethodLayout() + self.product_id = sku + self.custom_sheet = MDCustomBottomSheet(screen=pml) + self.custom_sheet.open() + + def initiate_purchase(self, method_name): + """initiate_purchase module""" + print("Purchasing {} through {}".format(self.product_id, method_name)) + + def _after_scan(self, text): + # if platform == 'android': + # toast_txt = cast(CharSequence, String(text)) + # show_toast(toast_txt, Toast.LENGTH_SHORT) + if self.root.ids.sc23.previous_open_screen == 'composer': + self.root.ids.sc3.children[1].ids.txt_input.text = text + self.root.ids.scr_mngr.current = 'create' + elif self.root.ids.sc23.previous_open_screen: + back_screen = self.root.ids.sc23.previous_open_screen + self.root.ids.scr_mngr.current = 'inbox' if back_screen == 'scanscreen' else back_screen + add_obj = self.root.ids.sc23.pop_up_instance + add_obj.content_cls.ids.address.text = text + Clock.schedule_once(partial(self.open_popup, add_obj), .5) + + @staticmethod + def open_popup(instance, dt): + """This method is used for opening popup""" + instance.open() + + +class PaymentMethodLayout(BoxLayout): + """PaymentMethodLayout class for kivy Ui""" diff --git a/src/tests/mock/pybitmessage/network/__init__.py b/src/tests/mock/pybitmessage/network/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/src/tests/mock/pybitmessage/network/threads.py b/src/tests/mock/pybitmessage/network/threads.py new file mode 100644 index 00000000..336aae5f --- /dev/null +++ b/src/tests/mock/pybitmessage/network/threads.py @@ -0,0 +1,33 @@ +"""Threading primitives for the network package""" + +import logging +import random +import threading + + +class StoppableThread(threading.Thread): + """Base class for application threads with stopThread method""" + name = None + logger = logging.getLogger('default') + + def __init__(self, name=None): + if name: + self.name = name + super(StoppableThread, self).__init__(name=self.name) + self.stop = threading.Event() + self._stopped = False + random.seed() + self.logger.info('Init thread %s', self.name) + + def stopThread(self): + """Stop the thread""" + self._stopped = True + self.stop.set() + + +class BusyError(threading.ThreadError): + """ + Thread error raised when another connection holds the lock + we are trying to acquire. + """ + pass diff --git a/src/tests/mock/pybitmessage/queues.py b/src/tests/mock/pybitmessage/queues.py new file mode 100644 index 00000000..16faaf82 --- /dev/null +++ b/src/tests/mock/pybitmessage/queues.py @@ -0,0 +1,50 @@ +"""Most of the queues used by bitmessage threads are defined here.""" + +import threading +import time + +from six.moves import queue + + +class ObjectProcessorQueue(queue.Queue): + """Special queue class using lock for `.threads.objectProcessor`""" + + maxSize = 32000000 + + def __init__(self): + queue.Queue.__init__(self) + self.sizeLock = threading.Lock() + #: in Bytes. We maintain this to prevent nodes from flooding us + #: with objects which take up too much memory. If this gets + #: too big we'll sleep before asking for further objects. + self.curSize = 0 + + def put(self, item, block=True, timeout=None): + while self.curSize >= self.maxSize: + time.sleep(1) + with self.sizeLock: + self.curSize += len(item[1]) + queue.Queue.put(self, item, block, timeout) + + def get(self, block=True, timeout=None): + item = queue.Queue.get(self, block, timeout) + with self.sizeLock: + self.curSize -= len(item[1]) + return item + + +workerQueue = queue.Queue() +UISignalQueue = queue.Queue() +addressGeneratorQueue = queue.Queue() +#: `.network.ReceiveQueueThread` instances dump objects they hear +#: on the network into this queue to be processed. +objectProcessorQueue = ObjectProcessorQueue() +# invQueue = MultiQueue() +# addrQueue = MultiQueue() +portCheckerQueue = queue.Queue() +receiveDataQueue = queue.Queue() +#: The address generator thread uses this queue to get information back +#: to the API thread. +apiAddressGeneratorReturnQueue = queue.Queue() +#: for exceptions +excQueue = queue.Queue() diff --git a/src/tests/mock/pybitmessage/screens_data.json b/src/tests/mock/pybitmessage/screens_data.json new file mode 100644 index 00000000..1ab9d6f4 --- /dev/null +++ b/src/tests/mock/pybitmessage/screens_data.json @@ -0,0 +1,78 @@ +{ + "Inbox": { + "kv_string": "inbox", + "name_screen": "inbox", + "Import": "from pybitmessage.baseclass.inbox import Inbox", + }, + "Sent": { + "kv_string": "sent", + "name_screen": "sent", + "Import": "from pybitmessage.baseclass.sent import Sent", + }, + "Draft": { + "kv_string": "draft", + "name_screen": "draft", + "Import": "from pybitmessage.baseclass.draft import Draft", + }, + "Trash": { + "kv_string": "trash", + "name_screen": "trash", + "Import": "from pybitmessage.baseclass.trash import Trash", + }, + "All Mails": { + "kv_string": "allmails", + "name_screen": "allmails", + "Import": "from pybitmessage.baseclass.allmail import Allmails", + }, + "Address Book": { + "kv_string": "addressbook", + "name_screen": "addressbook", + "Import": "from pybitmessage.baseclass.addressbook import AddressBook", + }, + "Settings": { + "kv_string": "settings", + "name_screen": "set", + "Import": "from pybitmessage.baseclass.settings import Setting", + }, + "Payment": { + "kv_string": "payment", + "name_screen": "payment", + "Import": "from pybitmessage.baseclass.payment import Payment", + }, + "Network status": { + "kv_string": "network", + "name_screen": "networkstat", + "Import": "from pybitmessage.baseclass.network import NetworkStat", + }, + "My addresses": { + "kv_string": "myaddress", + "name_screen": "myaddress", + "Import": "from pybitmessage.baseclass.myaddress import MyAddress", + }, + "MailDetail": { + "kv_string": "maildetail", + "name_screen": "mailDetail", + "Import": "from pybitmessage.baseclass.maildetail import MailDetail", + }, + "Create": { + "kv_string": "msg_composer", + "name_screen": "create", + "Import": "from pybitmessage.baseclass.msg_composer import Create", + }, + "Login": { + "kv_string": "login", + "Import": "from pybitmessage.baseclass.login import *", + }, + "Scanner": { + "kv_string": "scan_screen", + "Import": "from pybitmessage.baseclass.scan_screen import ScanScreen", + }, + "Popups": { + "kv_string": "popup", + "Import": "from pybitmessage.baseclass.popup import *", + }, + "Qrcode": { + "kv_string": "qrcode", + "Import": "from pybitmessage.baseclass.qrcode import ShowQRCode", + }, +} diff --git a/src/tests/mock/pybitmessage/shutdown.py b/src/tests/mock/pybitmessage/shutdown.py new file mode 100644 index 00000000..6ab29e02 --- /dev/null +++ b/src/tests/mock/pybitmessage/shutdown.py @@ -0,0 +1,84 @@ +"""shutdown function""" +import os +import queue as Queue +import threading +import time + +from pybitmessage import state +from pybitmessage.network.threads import StoppableThread +from pybitmessage.queues import ( + addressGeneratorQueue, objectProcessorQueue, UISignalQueue, workerQueue) + + +def doCleanShutdown(): + """ + Used to tell all the treads to finish work and exit. + """ + state.shutdown = 1 + + objectProcessorQueue.put(('checkShutdownVariable', 'no data')) + for thread in threading.enumerate(): + if thread.is_alive() and isinstance(thread, StoppableThread): + thread.stopThread() + + UISignalQueue.put(( + 'updateStatusBar', + 'Saving the knownNodes list of peers to disk...')) + # logger.info('Saving knownNodes list of peers to disk') + # saveKnownNodes() + # logger.info('Done saving knownNodes list of peers to disk') + UISignalQueue.put(( + 'updateStatusBar', + 'Done saving the knownNodes list of peers to disk.')) + # logger.info('Flushing inventory in memory out to disk...') + UISignalQueue.put(( + 'updateStatusBar', + 'Flushing inventory in memory out to disk.' + ' This should normally only take a second...')) + + # Verify that the objectProcessor has finished exiting. It should have + # incremented the shutdown variable from 1 to 2. This must finish before + # we command the sqlThread to exit. + # while state.shutdown == 1: + # time.sleep(.1) + + # Wait long enough to guarantee that any running proof of work worker + # threads will check the shutdown variable and exit. If the main thread + # closes before they do then they won't stop. + time.sleep(.25) + + for thread in threading.enumerate(): + if ( + thread is not threading.currentThread() + and isinstance(thread, StoppableThread) + and thread.name != 'SQL' + ): + # logger.debug("Waiting for thread %s", thread.name) + thread.join() + + # This one last useless query will guarantee that the previous flush + # committed and that the + # objectProcessorThread committed before we close the program. + # sqlQuery('SELECT address FROM subscriptions') + # logger.info('Finished flushing inventory.') + # sqlStoredProcedure('exit') + + # flush queues + for queue in ( + workerQueue, UISignalQueue, addressGeneratorQueue, + objectProcessorQueue): + while True: + try: + queue.get(False) + queue.task_done() + except Queue.Empty: + break + + # if state.thisapp.daemon or not state.enableGUI: + # logger.info('Clean shutdown complete.') + # state.thisapp.cleanup() + # os._exit(0) # pylint: disable=protected-access + # else: + # logger.info('Core shutdown complete.') + # for thread in threading.enumerate(): + # logger.debug('Thread %s still running', thread.name) diff --git a/src/tests/mock/pybitmessage/singleton.py b/src/tests/mock/pybitmessage/singleton.py new file mode 100644 index 00000000..5c6c43be --- /dev/null +++ b/src/tests/mock/pybitmessage/singleton.py @@ -0,0 +1,22 @@ +""" +Singleton decorator definition +""" + +from functools import wraps + + +def Singleton(cls): + """ + Decorator implementing the singleton pattern: + it restricts the instantiation of a class to one "single" instance. + """ + instances = {} + + # https://github.com/sphinx-doc/sphinx/issues/3783 + @wraps(cls) + def getinstance(): + """Find an instance or save newly created one""" + if cls not in instances: + instances[cls] = cls() + return instances[cls] + return getinstance diff --git a/src/tests/mock/pybitmessage/state.py b/src/tests/mock/pybitmessage/state.py new file mode 100644 index 00000000..62848c25 --- /dev/null +++ b/src/tests/mock/pybitmessage/state.py @@ -0,0 +1,133 @@ +""" +src/state.py +================================= +""" +import collections + +neededPubkeys = {} +streamsInWhichIAmParticipating = [] +# For UPnP +extPort = None +# for Tor hidden service +socksIP = None +# Network protocols availability, initialised below +networkProtocolAvailability = None +appdata = '' # holds the location of the application data storage directory +# Set to 1 by the doCleanShutdown function. +# Used to tell the proof of work worker threads to exit. +shutdown = 0 +# Component control flags - set on startup, do not change during runtime +# The defaults are for standalone GUI (default operating mode) +enableNetwork = True # enable network threads +enableObjProc = True # enable object processing threads +enableAPI = True # enable API (if configured) +enableGUI = True # enable GUI (QT or ncurses) +enableSTDIO = False # enable STDIO threads +curses = False +sqlReady = False # set to true by sqlTread when ready for processing +maximumNumberOfHalfOpenConnections = 0 + +maximumLengthOfTimeToBotherResendingMessages = 0 + +invThread = None +addrThread = None +downloadThread = None +uploadThread = None +ownAddresses = {} +# If the trustedpeer option is specified in keys.dat then this will +# contain a Peer which will be connected to instead of using the +# addresses advertised by other peers. The client will only connect to +# this peer and the timing attack mitigation will be disabled in order +# to download data faster. The expected use case is where the user has +# a fast connection to a trusted server where they run a BitMessage +# daemon permanently. If they then run a second instance of the client +# on a local machine periodically when they want to check for messages +# it will sync with the network a lot faster without compromising +# security. +trustedPeer = None +discoveredPeers = {} +Peer = collections.namedtuple('Peer', ['host', 'port']) + + +def resetNetworkProtocolAvailability(): + """This method helps to reset the availability of network protocol""" + # pylint: disable=global-statement + global networkProtocolAvailability + networkProtocolAvailability = {'IPv4': None, 'IPv6': None, 'onion': None} + + +resetNetworkProtocolAvailability() + +dandelion = 0 + +testmode = False + +kivy = False + +association = '' + +kivyapp = None + +navinstance = None + +mail_id = 0 + +myAddressObj = None + +detailPageType = None + +ackdata = None + +status = None + +screen_density = None + +msg_counter_objs = None + +check_sent_acc = None + +sent_count = 0 + +inbox_count = 0 + +trash_count = 0 + +draft_count = 0 + +all_count = 0 + +searcing_text = '' + +search_screen = '' + +send_draft_mail = None + +is_allmail = False + +in_composer = False + +availabe_credit = 0 + +in_sent_method = False + +in_search_mode = False + +clientHasReceivedIncomingConnections = False +"""used by API command clientStatus""" + +numberOfMessagesProcessed = 0 +numberOfBroadcastsProcessed = 0 +numberOfPubkeysProcessed = 0 + +statusIconColor = 'red' +""" +GUI status icon color +.. note:: bad style, refactor it +""" + +ackdataForWhichImWatching = {} + +thisapp = None +"""Singleton instance""" + +imageDir = None