def test_sandbox_request(raw_receipt): """Test sandbox receipt""" request = itunesiap.Request(raw_receipt) try: response = request.verify() assert False except itunesiap.exc.InvalidReceipt as e: assert e.status == 21007 assert e.description == e._descriptions[21007] request = itunesiap.Request(raw_receipt) with itunesiap.env.sandbox: response = request.verify() assert response.status == 0
def test_context(raw_receipt_legacy): """Test sandbox receipts with real itunes server.""" sandbox_receipt = raw_receipt_legacy request = itunesiap.Request(sandbox_receipt) prev_env = itunesiap.env.current() assert prev_env != itunesiap.env.production with itunesiap.env.production: try: request.verify() assert False except itunesiap.exc.InvalidReceipt as e: assert e.status == 21007 with itunesiap.env.review: request.verify() try: request.verify() assert False except itunesiap.exc.InvalidReceipt as e: assert e.status == 21007 assert prev_env == itunesiap.env.current() with itunesiap.env.review.clone(use_sandbox=False) as env: assert itunesiap.env.current() == env assert env.use_production is True assert env.use_sandbox is False assert prev_env == itunesiap.env.current()
def test_old_transaction_exclusion(raw_receipt_legacy): """Test optional old transaction exclusion parameter""" raw_receipt = raw_receipt_legacy request = itunesiap.Request(raw_receipt) response = request.verify(exclude_old_transactions=True, env=itunesiap.env.sandbox) assert response.status == 0
async def test_invalid_receipt(): request = itunesiap.Request('wrong receipt') with pytest.raises(itunesiap.exc.InvalidReceipt): await request.aioverify(env=itunesiap.env.production) with pytest.raises(itunesiap.exc.InvalidReceipt): await request.aioverify(env=itunesiap.env.sandbox)
def test_invalid_receipt(): request = itunesiap.Request('wrong receipt') with itunesiap.env.production: with pytest.raises(itunesiap.exc.InvalidReceipt): request.verify() with itunesiap.env.sandbox: with pytest.raises(itunesiap.exc.InvalidReceipt): request.verify()
def test_ssl_request_fail(): """Test failure making request to itunes server """ # We're going to return an invalid http status code with patch.object(requests, 'post') as mock_post: mock_post.side_effect = requests.exceptions.SSLError('Bad ssl') request = itunesiap.Request('DummyReceipt') try: request.verify(verify_request=True) assert False except itunesiap.exc.RequestError as e: assert type(e['exc']) == requests.exceptions.SSLError
def test_sandbox_request(raw_receipt): """Test sandbox receipt""" request = itunesiap.Request(raw_receipt) try: response = request.verify() assert False except itunesiap.exc.InvalidReceipt as e: assert e.status == 21007 assert e.description == e._descriptions[21007] request = itunesiap.Request(raw_receipt) with itunesiap.env.sandbox: response = request.verify() assert response.status == 0 """Test optional old transaction exclusion parameter""" request = itunesiap.Request(raw_receipt) with itunesiap.env.sandbox: response = request.verify(exclude_old_transactions=True) assert response.status == 0
def test_itunes_not_available(): """Test itunes server errors""" # We're going to return an invalid http status code with patch.object(requests, 'post') as mock_post: mock_post.return_value.content = 'Not avaliable' mock_post.return_value.status_code = 500 request = itunesiap.Request('DummyReceipt') try: request.verify() except itunesiap.exc.ItunesServerNotAvailable as e: assert e[0] == 500 assert e[1] == 'Not avaliable'
async def test_sandbox_aiorequest(raw_receipt_legacy): """Test sandbox receipt""" raw_receipt = raw_receipt_legacy request = itunesiap.Request(raw_receipt) try: response = await request.aioverify() except itunesiap.exc.InvalidReceipt as e: assert e.status == 21007 assert e.description == e._descriptions[21007] else: assert False, response response = await request.aioverify(env=itunesiap.env.sandbox) assert response.status == 0
def test_invalid_receipt(): request = itunesiap.Request('wrong receipt') with pytest.raises(itunesiap.exc.InvalidReceipt): request.verify(env=itunesiap.env.production) with pytest.raises(itunesiap.exc.InvalidReceipt): request.verify(env=itunesiap.env.sandbox) try: itunesiap.verify('bad data') except itunesiap.exc.InvalidReceipt as e: print(e) # __str__ test print(repr(e)) # __repr__ test
def test_invalid_responses(): """Test invalid responses error statuses""" # We're going to mock the Apple's response and put 21007 status with patch.object(requests, 'post') as mock_post: iap_status_21007 = RESPONSE.copy() iap_status_21007['status'] = 21007 mock_post.return_value.content = json.dumps(iap_status_21007).encode('utf-8') mock_post.return_value.status_code = 200 request = itunesiap.Request('DummyReceipt') try: request.verify() except itunesiap.exc.InvalidReceipt as e: assert e.status == 21007 assert e.description == e._descriptions[21007]
import datetime d = itunesiap.receipt._to_datetime(u'2013-01-01T00:00:00+09:00') assert (d.year, d.month, d.day) == (2013, 1, 1) assert d.tzinfo._offset == datetime.timedelta(0, 9 * 3600) d = itunesiap.receipt._to_datetime(u'2013-01-01 00:00:00 Etc/GMT') assert (d.year, d.month, d.day) == (2013, 1, 1) assert d.tzinfo._utcoffset == datetime.timedelta(0) d = itunesiap.receipt._to_datetime( u'2013-01-01 00:00:00 America/Los_Angeles') assert (d.year, d.month, d.day) == (2013, 1, 1) assert d.tzinfo == pytz.timezone('America/Los_Angeles') with pytest.raises(ValueError): itunesiap.receipt._to_datetime(u'wrong date') @pytest.mark.parametrize("object", [ itunesiap.Request('DummyReceipt'), itunesiap.Response('{}'), ]) def test_repr(object): """Test __repr__""" '{0!r}'.format(object) if __name__ == '__main__': pytest.main()