Skip to content

Commit 31534f7

Browse files
committed
Add draft screen, helper widgets and Test
1 parent 3b23977 commit 31534f7

File tree

4 files changed

+79
-0
lines changed

4 files changed

+79
-0
lines changed

src/bitmessagekivy/baseclass/draft.py

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
# pylint: disable=unused-argument, import-error, too-many-arguments
2+
# pylint: disable=unnecessary-comprehension, no-member, no-name-in-module
3+
4+
"""
5+
draft.py
6+
==============
7+
8+
Draft screen
9+
10+
"""
11+
from kivy.clock import Clock
12+
from kivy.properties import (
13+
ListProperty,
14+
StringProperty
15+
)
16+
from kivy.uix.screenmanager import Screen
17+
from kivy.app import App
18+
from pybitmessage.bitmessagekivy.baseclass.common import (
19+
show_limited_cnt, empty_screen_label,
20+
kivy_state_variables
21+
)
22+
import logging
23+
logger = logging.getLogger('default')
24+
25+
26+
class Draft(Screen):
27+
"""Draft screen class for kivy Ui"""
28+
29+
data = ListProperty()
30+
account = StringProperty()
31+
queryreturn = ListProperty()
32+
has_refreshed = True
33+
label_str = "yet no message for this account!!!!!!!!!!!!!"
34+
35+
def __init__(self, *args, **kwargs):
36+
"""Method used for storing draft messages"""
37+
super(Draft, self).__init__(*args, **kwargs)
38+
self.kivy_state = kivy_state_variables()
39+
if self.kivy_state.selected_address == '':
40+
if App.get_running_app().identity_list:
41+
self.kivy_state.selected_address = App.get_running_app().identity_list[0]
42+
Clock.schedule_once(self.init_ui, 0)
43+
44+
def init_ui(self, dt=0):
45+
"""Clock Schedule for method draft accounts"""
46+
self.load_draft()
47+
logger.debug(dt)
48+
49+
def load_draft(self, where="", what=""):
50+
"""Load draft list for Draft messages"""
51+
self.set_draft_count('0')
52+
self.ids.ml.add_widget(empty_screen_label(self.label_str))
53+
54+
@staticmethod
55+
def set_draft_count(Count):
56+
"""Set the count of draft mails"""
57+
draftCnt_obj = App.get_running_app().root.ids.content_drawer.ids.draft_cnt
58+
draftCnt_obj.ids.badge_txt.text = show_limited_cnt(int(Count))

src/bitmessagekivy/main.kv

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -242,6 +242,8 @@ MDNavigationLayout:
242242
id:id_trash
243243
Allmails:
244244
id:id_allmail
245+
Draft:
246+
id:id_draft
245247

246248
MDNavigationDrawer:
247249
id: nav_drawer

src/bitmessagekivy/screens_data.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,5 +60,10 @@
6060
"kv_string": "maildetail",
6161
"name_screen": "mailDetail",
6262
"Import": "from pybitmessage.bitmessagekivy.baseclass.maildetail import MailDetail"
63+
},
64+
"Draft": {
65+
"kv_string": "draft",
66+
"name_screen": "draft",
67+
"Import": "from pybitmessage.bitmessagekivy.baseclass.draft import Draft"
6368
}
6469
}

src/bitmessagekivy/tests/test_draft_message.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,20 @@ class DraftMessage(TeleniumTestProcess):
1212
test_subject = 'Test Subject text'
1313
test_body = 'Hey, This is draft Message Body'
1414

15+
@ordered
16+
def test_draft_screen(self):
17+
"""Test draft screen is open"""
18+
# Checking current Screen(Inbox screen)
19+
self.assert_wait_no_except('//ScreenManager[@current]', timeout=15, value='inbox')
20+
# Method to open side navbar
21+
self.open_side_navbar()
22+
# this is for opening Draft screen
23+
self.cli.wait_click('//NavigationItem[@text=\"Draft\"]', timeout=2)
24+
# Checking the drawer is in 'closed' state
25+
self.assertExists('//MDNavigationDrawer[@status~=\"closed\"]', timeout=5)
26+
# Checking Draft Screen
27+
self.assertExists("//ScreenManager[@current=\"draft\"]", timeout=5)
28+
1529
@skip_screen_checks
1630
@ordered
1731
def test_save_message_to_draft(self):

0 commit comments

Comments
 (0)