YRD HTTP üzərində As-Is sənəd (olan mövzular və məzmun) xidmət üçün yüngül Python yardım edir.
Bu HTTP resursları almaq vahid test alətləri gəldikdə, biz qərar biz asanlıqla əvvəlcədən müəyyən cavab saxlamaq üçün bir yol var, istədiyiniz və biz bu testlər çalışan etdiyiniz kimi sonra eyni proses bir server onlara xidmət. No meymun patching, (a caching proxy server kimi) heç bir infrastruktur.
Bu onları replay sonra mövcud xidmətlərin sorğu ələ və üçün arıyorsanız, VCR layihə bir neçə dillərə idxal və çox faydalı deyil ki, qeyd etmək lazımdır.
Nə mı?
Twisted Apache ilham kimi xidmət verən adlı bir xüsusiyyət ilə gəlir. Lakin, kim bir asılılıq kimi Twisted daxil etmək istəyir?
Bu şüşə əsasında və beləliklə, (Twisted və gevent daxil olmaqla) wsgi backends bir sıra dəstəkləyir, və yüngül olmaq üçün nəzərdə tutulmuşdur edir. Bir-kimi sənəd başlıqlarını və HTTP cavab məzmun, həm də saxlanılır olan biridir:
HTTP / 1.0 200 OK
Content-Length: 137
Content-Type: text / html
& Nbsp;
& Nbsp;
& Nbsp;
& Nbsp;
& Nbsp;
Salam, mən bir test səhifə deyiləm
& Nbsp;
Bu mövzular üçün yalnız newlines tələb unutmayın - sətir başları rahatlığı üçün avtomatik olaraq əlavə olunur.
Quraşdırma
Easy peasy:
sudo Asis bərpa PIP
Və ya mənbədən tercih edənlər üçün:
git klon https://github.com/seomoz/asis
cd YRD && sudo python bərpa setup.py
istifadə
Siz nisbətən asanlıqla YRD server çalıştırabilirsiniz:
idxal YRD
# Port 8080 saxlanılır faylları 'foo / xidmət
server = asis.Server (foo, 8080)
server.run ()
...
server.stop ()
Alternativ olaraq, kontekstində-meneceri moda istifadə edilə bilər:
idxal YRD
idxal sorğu
server kimi asis.Server (foo) ilə:
& Nbsp; requests.get ('http: // localhost: 8080 / foo / bar.asis)
Orada da bir skript satırı yardım curl vasitəsilə bu fayl və ya brauzerinizin görən üçün xüsusilə faydalıdır bağımsız bir server kimi YRD fayllar xidmət rahatlığı üçün daxil:
# Port 8080 "foo /" həyata faylları xidmət
YRD-server foo 8080 --port
# Eyni istifadə gevent və ayrıntılı olan
YRD-server foo --port 8080 --server gevent --verbose
Bells və whistles
Siz istifadə etmək lazım ola bilər bir neçə xüsusiyyətləri vardır:
Content-Kodlama
Ya gzip kimi Content-Kodlama mövzu təchiz və ya gururunu qırmaq varsa, fayl saxlanılır düz məzmunu sıxılmış və tel üzərində yol göndərilir. Belə hallarda, siz 0 kimi Content-Length tərk edə bilər, və (sıxılma sonra) həqiqi məzmunu uzunluğu yerində göndəriləcək. Məsələn, aşağıdakı düzgün brauzerinizin gzip-sıxılmış content kimi göndərilən olur:
HTTP / 1.0 200 OK
Content-Length: 0
Content-Type: text / plain
Content-Kodlama: gzip
Salam dünya!
Charset
Siz Content-Type mövzu bir charset daxil, onda sizin content utf-8 disk kimi şərh və sonra təmin kodlama kodlanmış olacaq. Siz açıq-aydın onların elan character set sizin nümunələri saxlamaq yoxdur ki, fikir redaktə prosesi kömək etməkdir. Content-Kodlama dəyişikliklər kimi, Content-Length header çevrilməsi tam bir düzgün recomputed edilir.
Modu
Mənim cari olaraq, server gevent server ilə başladı və bu fon yaşıl mövzu açılmış oldu və bu, () qaytarır run qısa müddətdə xidmət hazır olması lazımdır.
Alternativ olaraq, server digər iki rejimi, çəngəl və blok açılmış ola bilər. Çəngəl, onda ayrı prosesində server davam edəcək və bu, hələ də kontekstində meneceri kimi və run zəng sonra işləyir (). Blok seçilmiş, onda bir blok şəkildə çalışır. Məsələn:
# Ayrı prosesində Run
asis.Server (foo, port = 8080, rejimi = 'çəngəl ") ilə:
& Nbsp; # bəzi sorğu etmək
& Nbsp; ...
nümunələri və testlər
Sənədlər olduğu kimi, test.py düzgün köçürülür ki, yoxlamaq üçün birbaşa run bilər nümunələri burada bir sıra daxildir:
./test.py
Bu da sizin vahid testlər daxil daxil ola bilər necə bir misal verir.
töhfə
. Suallar, yorumlar, fikir həmişə alqışlayırıq
tələblər
- Python
Şərhlər tapılmadı