~canonical-platform-qa/ubuntu-system-tests/fixes_dependendies_already_installed

« back to all changes in this revision

Viewing changes to ubuntu_system_tests/helpers/ofono.py

  • Committer: Tarmac
  • Author(s): Brendan Donegan
  • Date: 2015-06-22 20:29:23 UTC
  • mfrom: (122.3.19 test_send_sms)
  • Revision ID: tarmac-20150622202923-lpcbwlswoc1tm3nc
Add test_send_sms_to_contact which sends an SMS message to a contact in the address book.

Approved by PS Jenkins bot, Richard Huddie, Sergio Cazzolato.

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
 
24
24
logger = logging.getLogger(__name__)
25
25
 
 
26
SIM_MANAGER = 'org.ofono.SimManager'
 
27
 
26
28
 
27
29
def _get_sim_manager(sim_number):
28
30
    bus = dbus.SystemBus()
29
31
    modem = bus.get_object('org.ofono', '/ril_{}'.format(sim_number))
30
 
    return dbus.Interface(modem, 'org.ofono.SimManager')
 
32
    return dbus.Interface(modem, SIM_MANAGER)
31
33
 
32
34
 
33
35
def is_pin_locked(sim_number):
48
50
        sim_manager.LockPin('pin', pin)
49
51
 
50
52
 
51
 
def _check_modem(ignore_phonesim, properties, ril_modem, modem_number):
 
53
def _check_modem(ril_modem, properties, modem_number=None,
 
54
                 ignore_phonesim=True):
52
55
    """Decide if the specified modem should be checked.
53
56
 
54
57
    Returns True if this modem should be checked, False if not.
75
78
    return check_status
76
79
 
77
80
 
78
 
def is_sim_inserted(sim_number=None, ignore_phonesim=False):
 
81
def _get_all_modems(bus):
 
82
    """
 
83
    Get the DBus interfaces representing each modem
 
84
    the device has.
 
85
 
 
86
    :returns: A list of modems
 
87
    """
 
88
    manager = dbus.Interface(
 
89
        bus.get_object('org.ofono', '/'), 'org.ofono.Manager')
 
90
    return manager.GetModems()
 
91
 
 
92
 
 
93
def _sim_present(bus, ril_modem, properties,
 
94
                 sim_number=None, ignore_phonesim=True):
 
95
    if _check_modem(ril_modem, properties, modem_number=sim_number,
 
96
                    ignore_phonesim=ignore_phonesim):
 
97
        modem = bus.get_object('org.ofono', ril_modem)
 
98
        sim_manager = dbus.Interface(modem, SIM_MANAGER)
 
99
        try:
 
100
            if sim_manager.GetProperties()['Present']:
 
101
                return True
 
102
        except dbus.exceptions.DBusException as e:
 
103
            logger.warning('exception: {0}detected on modem: {1}'.format(
 
104
                           e, ril_modem))
 
105
    return False
 
106
 
 
107
 
 
108
def is_sim_inserted(sim_number=None, ignore_phonesim=True):
79
109
    """Check a SIM is inserted.
80
110
 
81
111
    Checks if a SIM card is inserted in the specified
90
120
    any slot, otherwise False
91
121
    """
92
122
    bus = dbus.SystemBus()
93
 
    manager = dbus.Interface(
94
 
        bus.get_object('org.ofono', '/'), 'org.ofono.Manager')
95
 
    modems = manager.GetModems()
96
 
    for ril_modem, properties in modems:
97
 
        if _check_modem(
98
 
                ignore_phonesim, properties, ril_modem, sim_number):
99
 
            modem = bus.get_object('org.ofono', ril_modem)
100
 
            sim_manager = dbus.Interface(modem, 'org.ofono.SimManager')
101
 
            try:
102
 
                if sim_manager.GetProperties()['Present']:
103
 
                    return True
104
 
            except dbus.exceptions.DBusException as e:
105
 
                logger.warning('exception: {0}detected on modem: {1}'.format(
106
 
                    e, ril_modem))
107
 
                continue
 
123
    for ril_modem, properties in _get_all_modems(bus):
 
124
        if _sim_present(bus, ril_modem, properties,
 
125
                        sim_number, ignore_phonesim):
 
126
            return True
108
127
    return False
 
128
 
 
129
 
 
130
def number_of_sims(ignore_phonesim=True):
 
131
    """
 
132
    Provide the number of SIMs inserted in the device.
 
133
 
 
134
    :returns: The number of SIMs found
 
135
    """
 
136
    number_of_sims = 0
 
137
    bus = dbus.SystemBus()
 
138
    for ril_modem, properties in _get_all_modems(bus):
 
139
        if _sim_present(bus, ril_modem, properties,
 
140
                        ignore_phonesim=ignore_phonesim):
 
141
            number_of_sims += 1
 
142
    return number_of_sims