Publish on Jul 06, 2019 by Alfin F Requests merupakan modul Python yang bisa kamu gunakan untuk mengirim berbagai request HTTP. Requests adalah library yang memiliki banyak fitur mulai dari melempar parameter dalam URL sampai mengirim header khusus dan verifikasi SSL. HTTP mendefinisikan seperangkat metode permintaan untuk menunjukkan tindakan yang diinginkan yang akan dilakukan untuk sumber daya tertentu. Meskipun mereka juga bisa menjadi kata benda, metode permintaan ini kadang-kadang disebut sebagai verba HTTP. Masing-masing menerapkan semantik yang berbeda, namun beberapa fitur umum dapat digunakan bersamaan, contohnya Metode permintaan dapat berupa safe, idempotent, atau cacheable. Pada kesempatan kali ini kita akan mempelajari lebih jauh tentang Python Requests. selama ini kita sudah sering mendengar atau bahkan menggunakan http methods GET dan POST. taukah
kamu bahwa HTTP Methods memiliki sedikitnya 7 methods apa saja itu ?
sebelum membaca tutorial ini lebih lanjut, pastikan bahwa kamu sudah membuat virtual environment. kemudian install library requests menggunakan pip pip install requests 1) GETMetode GET meminta representasi sumber daya yang ditentukan. Permintaan menggunakan GET seharusnya hanya mengambil data import requests 2) POSTMetode POST digunakan untuk mengirimkan entitas ke sumber daya yang ditentukan, sering menyebabkan perubahan pada keadaan atau efek samping pada server. import requests 3) PUTMetode PUT menggantikan semua representasi terkini dari sumber target dengan muatan permintaan. import requests 4) DELETEMetode DELETE akan menghapus sumber daya yang ditentukan import requests 5) HEADMetode HEAD meminta tanggapan yang identik dengan permintaan GET, namun tanpa respon body. import requests 6) PATCHMetode PATCH digunakan untuk menerapkan modifikasi sebagian pada sumber daya. import requests 7) OPTIONSMetode import requests Indonesian (Bahasa Indonesia) translation by Taufan Prasetyo Basri (you can also view the original English article) Mocking adalah library untuk pengujian/testing di Python. Hal ini memungkinkan
Anda mengganti bagian sistem Anda yang akan diuji dengan objek tiruan dan membuat pernyataan atau tuntunan tentang bagaimana cara menggunakannya. Tutorial ini akan membahas secara rinci apa itu mocking dan bagaimana menggunakannya dalam aplikasi berbasis Python. Apa itu Mocking?Mocking adalah library untuk pengujian/testing di Python. Hal ini memungkinkan Anda mengganti bagian sistem Anda yang akan diuji dengan objek tiruan dan membuat pernyataan atau tuntunan tentang bagaimana cara menggunakannya. Dengan Python, mocking dilakukan dengan mengganti bagian sistem Anda dengan objek tiruan menggunakan modul unittest.mock. Modul ini berisi sejumlah kelas dan fungsi yang sangat berguna, yaitu fungsi patch (sebagai dekorator dan context manager) dan kelas MagicMock. Kedua komponen ini sangat penting dalam melakukan mocking di Python. Pemanggilan fungsi mock biasanya mengembalikan nilai yang telah ditentukan secara langsung. Atribut objek dan metode mock didefinisikan dalam tes juga, tanpa menciptakan objek sebenarnya. Mocking juga memungkinkan Anda mengembalikan nilai yang telah ditentukan ke setiap pemanggilan fungsi saat menulis test. Hal ini memungkinkan Anda untuk memiliki kontrol lebih saat melakukan pengujian. PrasyaratMock tersedia di Python 3, tetapi jika Anda menggunakan versi Python di bawah $ pip install mock Manfaat penggunaan MockingBeberapa manfaat dari mocking meliputi:
PenggunaanPenggunaan >>> from mock import Mock >>> mock = Mock(return_values = 10) >>> mock(1,4,foo ='bar') <Mock name='mock()' id='140305284793040'> >>> mock.return_values 10 Di sini, kita mengimpor modul mock, membuat objek mock, dan menentukan nilai kembalian. Ketika objek mock dipanggil, kita ingin mengembalikan beberapa nilai. Dalam kasus ini, kita ingin objek mock mengembalikan nilai 10. Jika kita memanggil objek
mock dengan argumen Anda juga dapat membuat pengecualian di dalam mock sebagai berikut: >>> mock = Mock(side_effect=KeyError('foobar')) >>> mock() Traceback (most recent call last): ... KeyError: 'foobar' Argumen ContohPertimbangkan fungsi sederhana ini: import requests def api(): response = requests.get('https://www.google.com/') return response Fungsi ini melakukan permintaan API ke laman web Google dan mengembalikan respons. Kasus uji sederhana yang sesuai adalah sebagai berikut: import unittest from main import api class TetsApi(unittest.TestCase): def test_api(self): assert api() == 200 Menjalankan tes di atas harus memberikan output seperti: ---------------------------------------------------------------------- Ran 1 test in 3.997s OK Mari perkenalkan mocking untuk contoh ini, dan tes yang dihasilkan dengan modul Mock akan seperti yang ditunjukkan di bawah ini: import unittest from mock import Mock from mock import patch import requests import unittest class TetsApi(unittest.TestCase): def test_api(self): with patch.object(requests, 'get') as get_mock: get_mock.return_value = mock_response = Mock() mock_response.status_code = 200 assert api() == 200 Menjalankan tes di atas harus memberikan output seperti: ---------------------------------------------------------------------- Ran 1 test in 0.001s OK Seperti yang terlihat di atas, modul mocking memakan waktu lebih sedikit untuk membuat panggilan API yang sama seperti uji normal. Contoh yang lebih besarAnggaplah Anda memiliki skrip yang berinteraksi dengan API eksternal dan panggil ke API kapan pun fungsi tertentu dipanggil. Dalam contoh ini, kita akan menggunakan API Twitter untuk mengimplementasikan skrip Python yang akan dikirim ke halaman profil Twitter. Kita tidak ingin mengeposkan pesan di Twitter setiap kali kita menguji skrip, dan di situlah Mocking digunakan. Mari kita mulai. Kita akan menggunakan library python-twitter, dan hal pertama yang akan kita lakukan adalah membuat folder
Tuliskan kode berikut ke file # pip install python-twitter import twitter # define authentication credentials consumer_key = 'iYD2sKY4NC8teRb9BUM8UguRa' consumer_secret = 'uW3tHdH6UAqlxA7yxmcr8FSMSzQIBIpcC4NNS7jrvkxREdJ15m' access_token_key = '314746354-Ucq36TRDnfGAxpOVtnK1qZxMfRKzFHFhyRqzNpTx7wZ1qHS0qycy0aNjoMDpKhcfzuLm6uAbhB2LilxZzST8w' access_token_secret = '7wZ1qHS0qycy0aNjoMDpKhcfzuLm6uAbhB2LilxZzST8w' def post_tweet(api, tweet): # post tweet status = api.PostUpdate(tweet) return status def main(): api = twitter.Api(consumer_key=consumer_key, consumer_secret=consumer_secret, access_token_key=access_token_key, access_token_secret=access_token_secret) message = raw_input("Enter your tweet :") post_tweet(api, message) if __name__ == '__main__': main() Pada kode di atas, pertama-tama kami mengimpor library Twitter dan kemudian menentukan kredensial otentikasi, yang dapat Anda dapatkan dengan mudah dari halaman Aplikasi Twitter. API Twitter terpapar melalui kelas Fungsi Kita langsung mock dan panggil API ke Twitter sehingga API tidak mengirim ke Twitter setiap kali dipanggil. Silakan buka file # mock_test.py #!/usr/bin/env python import unittest from mock import Mock import tweet class TweetTest(unittest.TestCase): def test_example(self): mock_twitter = Mock() tweet.post_tweet( mock_twitter, "Creating a Task Manager App Using Ionic: Part 1") mock_twitter.PostUpdate.assert_called_with( "Creating a Task Manager App Using Ionic: Part 1") if __name__ == '__main__': unittest.main() Menjalankan tes di atas harus memberikan output seperti: ---------------------------------------------------------------------- Ran 1 test in 0.001s OK KesimpulanTutorial ini telah mencakup sebagian besar dasar-dasar mocking dan bagaimana menggunakan mocking untuk menggunakan API eksternal. Untuk informasi lebih lanjut, kunjungi dokumentasi resmi mocking Python. Anda juga dapat menemukan sumber tambahan tentang otentikasi dengan API Twitter di tutorial ini. Selain itu, jangan ragu untuk melihat apa yang tersedia untuk dijual dan pelajari di Envato Market, dan silakan masuk dan ajukan pertanyaan dan berikan feedback berharga Anda menggunakan feed di bawah ini. |