Asis on kevyt Python apuohjelma palvelevat sellaisenaan asiakirja (joka sisältää otsikot ja sisältö) HTTP.
Kun se tulee yksikkötestauksen työkaluja, nouto HTTP resurssit, päätimme haluaisimme olla helppo tapa tallentaa ennalta määritelty vastauksia, ja sitten palvella heitä palvelimen sama prosessi kuin olemme testien tekeminen. Ei apina kauneuspilkku, ei infrastruktuurin (kuten välimuistin välityspalvelinta).
On syytä mainita, että jos etsit kaapata pyyntöjä olemassa olevien palvelujen ja sitten kuunnella niitä, videonauhurin hanke on toteutettu monille useita kieliä ja on erittäin hyödyllinen.
Mikä?
Twisted mukana ominaisuus kutsutaan-palvelee innoittamana Apache. Mutta kuka haluaa kuuluvat Twisted kuin riippuvuus?
Tämä perustuu pullon, ja siten tukee useita WSGI taustajärjestelmille (mukaan lukien kierretty ja gevent), ja on tarkoitus olla kevyt. Sellaisenaan asiakirja on sellainen, jossa sekä ylä- ja sisällön HTTP-vastaus tallennetaan:
HTTP / 1.0 200 OK
Content-Length: 137
Content-Type: text / html
& Nbsp;
& Nbsp;
& Nbsp;
& Nbsp;
& Nbsp;
Hei, olen testisivun
& Nbsp;
Huomaa, että tämä vaatii vain rivinvaihdot varten otsikot - rivinsiirtoja lisätään automaattisesti mukavuussyistä.
Asennus
Helppo peasy:
sudo Pip asentaa Asis
Tai niille, jotka haluavat lähteestä:
git klooni https://github.com/seomoz/asis
cd asis && sudo python setup.py asentaa
Käyttö
Voit ajaa asis palvelin suhteellisen helposti:
tuonti asis
# Tarjoile tiedostot tallennetaan "foo /" portissa 8080
palvelin = asis.Server ('foo', 8080)
server.run ()
...
server.stop ()
Vaihtoehtoisesti se voidaan käyttää yhteydessä-johtaja muoti:
tuonti asis
tuontipyynnöt
kanssa asis.Server ('foo') kuin palvelin:
& Nbsp; requests.get ('http: // localhost: 8080 / foo / bar.asis')
Mukana on myös komentoriviapuohjelma mukana mukavuussyistä toimimisesta asis tiedostoja erillisenä palvelin, joka on erityisen hyödyllinen nähdä näitä tiedostoja kiharaa tai selain:
# Tarjoile tiedostot pois "foo /" portissa 8080
asis-palvelin foo --port 8080
# Sama käyttäen gevent ja monisanaisuudestaan
asis-palvelin elintarvikkeita --port 8080 --server gevent --verbose
kelloja ja pillejä
On olemassa muutamia ominaisuuksia voit joutua hyödyntää:
Content-Encoding
Jos annat Content-Encoding otsikon joko gzip tai tyhjetä, tavallinen sisältö tallennetaan tiedostoon pakataan ja lähetetään lanka, joka tavalla. Näissä tapauksissa voit jättää Content-Length kuin 0, ja todellinen sisältö pituus (puristuksen jälkeen) lähetetään sen tilalle. Esimerkiksi seuraava saa lähettää gzip-pakattu sisältöä oikein selain:
HTTP / 1.0 200 OK
Content-Length: 0
Content-Type: text / plain
Sisältö-Encoding: gzip
Hei maailma!
Charset
Jos lisäät charset teidän Content-type, niin sisältöä tulkitaan utf-8 levylle, ja sitten koodattu säädetty koodausta. Ajatuksena on auttaa muokkausta niin, että sinun ei tarvitse erikseen tallentaa esimerkkejä ilmoitetussa merkistön. Kuten muutoksia Content-Encoding, Content-Length otsikko recomputed oikeaksi kun muunnos on valmis.
Tilat
Oletuksena palvelimen aloitetaan gevent palvelimen, ja se alkoi taustalla vihreä lanka, ja se pitäisi olla valmis palvelemaan pyyntöjä heti run () palaa.
Vaihtoehtoisesti palvelin voidaan käynnistää kahdella muissa tiloissa, haarukka ja lohko. Jos haarukka, niin se ajaa palvelimen erillisessä prosessissa, ja se toimii edelleen kuin molemmat yhteydessä johtaja ja kutsun jälkeen run (). Jos lohko on valittu, niin se toimii esto tavalla. Esimerkiksi:
# Suorita se erillisessä prosessissa
kanssa asis.Server ('foo', portti = 8080, mode = "haarukka"):
& Nbsp; # Tee pyyntöjä
& Nbsp; ...
Esimerkkejä ja Testit
Mukana tässä on useita esimerkkejä sellaisenaan asiakirjoja, ja test.py voidaan ajaa suoraan tarkistaa, että ne siirtyvät oikein:
./test.py
Se tarjoaa myös esimerkki siitä, miten voit sisällyttää se teidän Osatestit.
avustaminen
Kysymyksiä, kommentteja, ideoita aina tervetulleita.
Vaatimukset :
- Python
Kommentteja ei löytynyt