Ejemplo n.º 1
0
def test_sms_status_fail(client: SMSC, params: dict):
    assert os.environ.get('PHONE')
    to = os.environ['PHONE']
    msg_id = '1'
    f = furl(URL).add(path="status.php").add(params).add({
        'phone': to + ',',
        'id': msg_id + ',',
        'charset': 'utf-8',
        'all': 2,
        'fmt': 3
    }).remove('sender')
    with requests_mock.Mocker() as m:
        m.get(f.url,
              json={},
              headers={'Content-Type': 'application/json; charset=utf-8'},
              status_code=404)
        with pytest.raises(GetStatusError):
            client.get_status(to=os.environ['PHONE'], msg_id=msg_id)
Ejemplo n.º 2
0
def test_sms_status(client: SMSC, params: dict):
    assert os.environ.get('PHONE')
    to = os.environ['PHONE']
    msg_id = '1'
    f = furl(URL).add(path="status.php").add(params).add({
        'phone': to + ',',
        'id': msg_id + ',',
        'charset': 'utf-8',
        'all': 2,
        'fmt': 3
    }).remove('sender')
    with requests_mock.Mocker() as m:
        m.get(f.url,
              json=[{
                  'id': 1,
                  'send_timestamp': 1495823967,
                  'message': 'test',
                  'status_name': 'Доставлено',
                  'cost': '1.20',
                  'phone': '79262138080',
                  'sender_id': 'avto-disp',
                  'last_date': '26.05.2017 21:39:32',
                  'region': 'г.Москва и Московская область',
                  'send_date': '26.05.2017 21:39:27',
                  'last_timestamp': 1495823972,
                  'operator': 'МегаФон',
                  'status': 1,
                  'country': 'Россия'
              }],
              headers={'Content-Type': 'application/json; charset=utf-8'})
        res = client.get_status(to=os.environ['PHONE'], msg_id=msg_id)
    assert res is not None
    assert isinstance(res, list)
    assert len(res) == 1
    assert str(res).startswith('[<StatusResponse ')
    assert isinstance(res[0], StatusResponse)
    assert str(
        res[0]
    ) == "<StatusResponse id=1 status= <Status status=1 name=Доставлено>>"
    assert res[0].status is not None
    assert isinstance(res[0].status, Status)
    assert res[0].status.status_id == 1
    assert res[0].status.name == 'Доставлено'
    assert res[0].data is not None
    assert isinstance(res[0].data, dict)
    for name in [
            'id', 'message', 'cost', 'phone', 'sender_id', 'last_date',
            'region', 'send_date', 'operator', 'country'
    ]:
        assert name in res[0].data
    for name in ['send_timestamp', 'last_timestamp', 'status', 'status_name']:
        assert name not in res[0].data
    assert isinstance(res[0].data['send_date'], datetime.datetime)