~evfool/software-center/lp927426

« back to all changes in this revision

Viewing changes to softwarecenter/gwibber_helper.py

  • Committer: Kiwinote
  • Date: 2012-03-15 22:36:31 UTC
  • mfrom: (2867 trunk)
  • mto: This revision was merged to the branch mainline in revision 2881.
  • Revision ID: kiwinote@gmail.com-20120315223631-lvea6t5sydpkkqni
mergeĀ fromĀ trunk

Show diffs side-by-side

added added

removed removed

Lines of Context:
25
25
import sys
26
26
from random import random
27
27
 
 
28
 
28
29
class GwibberHelper(object):
29
 
    """ A helper class for gwibber. ideally we would just use 
 
30
    """ A helper class for gwibber. ideally we would just use
30
31
        from gi.repository import Gwibber
31
32
        accounts = Gwibbers.Accounts()
32
33
        accounts.list()
58
59
                                   "/com/gwibber/Service")
59
60
        service_iface = dbus.Interface(proxy_obj, "com.Gwibber.Service")
60
61
        if account_id:
61
 
            json_str = json.dumps({'message' : message,
62
 
                                     'accounts' : [account_id],
63
 
                                     })
 
62
            json_str = json.dumps({'message': message,
 
63
                                   'accounts': [account_id],
 
64
                                   })
64
65
            service_iface.Send(json_str)
65
66
        else:
66
67
            service_iface.SendMessage(message)
84
85
            logging.exception("GwibberHelper.has_accounts_in_sqlite() failed")
85
86
            return False
86
87
 
 
88
 
87
89
class GwibberHelperMock(object):
88
 
        
89
 
    fake_gwibber_accounts_one = [{u'username': u'randomuser', u'user_id': u'2323434224', u'service': u'twitter', u'secret_token': u':some-token', u'color': u'#729FCF', u'receive_enabled': True, u'access_token': u'some_access_token', u'send_enabled': True, u'id': u'twitter-id-random-15af8bddb6'}]
90
 
    fake_gwibber_accounts_multiple = [{u'username': u'random1 with a very long name', u'user_id': u'2342342313', u'service': u'twitter', u'secret_token': u':some-token', u'color': u'#729FCF', u'receive_enabled': True, u'access_token': u'some_access_token', u'send_enabled': True, u'id': u'twitter-id-rnadomuser-radfsdf'}, {u'username': u'mpt', u'user_id': u'23safdsaf5', u'service': u'twitter', u'secret_token': u':some_otken', u'color': u'#729FCF', u'receive_enabled': True, u'access_token': u'some_access_token', u'send_enabled': True, u'id': u'twitter-id-mpt-afsdfsa'}]
 
90
 
 
91
    fake_gwibber_accounts_one = [
 
92
        {u'username': u'randomuser',
 
93
         u'user_id': u'2323434224',
 
94
         u'service': u'twitter',
 
95
         u'secret_token': u':some-token',
 
96
         u'color': u'#729FCF',
 
97
         u'receive_enabled': True,
 
98
         u'access_token': u'some_access_token',
 
99
         u'send_enabled': True,
 
100
         u'id': u'twitter-id-random-15af8bddb6'}
 
101
        ]
 
102
    fake_gwibber_accounts_multiple = [
 
103
        {u'username': u'random1 with a very long name',
 
104
         u'user_id': u'2342342313',
 
105
         u'service': u'twitter',
 
106
         u'secret_token': u':some-token',
 
107
         u'color': u'#729FCF',
 
108
         u'receive_enabled': True,
 
109
         u'access_token': u'some_access_token',
 
110
         u'send_enabled': True,
 
111
         u'id': u'twitter-id-rnadomuser-radfsdf'},
 
112
        {u'username': u'mpt',
 
113
         u'user_id': u'23safdsaf5',
 
114
         u'service': u'twitter',
 
115
         u'secret_token': u':some_otken',
 
116
         u'color': u'#729FCF',
 
117
         u'receive_enabled': True,
 
118
         u'access_token': u'some_access_token',
 
119
         u'send_enabled': True,
 
120
         u'id': u'twitter-id-mpt-afsdfsa'}
 
121
        ]
91
122
 
92
123
    def accounts(self):
93
124
        import copy
101
132
 
102
133
    def send_message(self, message, account_id="all"):
103
134
        sys.stderr.write("sending '%s' to '%s'\n" % (message, account_id))
104
 
        #used for testing purposes, to emulate a gwibber failure for ~1 out of every 5 attempts
 
135
        # used for testing purposes, to emulate a gwibber failure for ~1 out
 
136
        # of every 5 attempts
105
137
        r = random()
106
 
        if r < 0.2 and not "SOFTWARE_CENTER_GWIBBER_MOCK_NO_FAIL" in os.environ:
 
138
        if (r < 0.2 and
 
139
            not "SOFTWARE_CENTER_GWIBBER_MOCK_NO_FAIL" in os.environ):
107
140
            return False
108
141
        return True
109
 
    
 
142
 
110
143
    def has_accounts_in_sqlite():
111
144
        return True
112
145
 
113
146
 
114
 
GWIBBER_SERVICE_AVAILABLE = GwibberHelper.has_accounts_in_sqlite() and os.path.exists("/usr/bin/gwibber-poster")
115
 
 
116
 
 
 
147
GWIBBER_SERVICE_AVAILABLE = GwibberHelper.has_accounts_in_sqlite() and \
 
148
                             os.path.exists("/usr/bin/gwibber-poster")