ASIS е лека Python полезност за сервиране, КАКЪВТО Е документ (съдържащи горни и съдържание) през HTTP.
Когато става въпрос за единични инструменти за тестване, който донесе HTTP ресурси, решихме ние бихме искали да има начин да се лесно да се съхранява предварително определени отговори, и след това да ги обслужват от сървър в същия процес, както ние сме пускането на тези тестове. Не маймуна изкърпване, никаква инфраструктура (като кеширане прокси сървър).
Трябва да се отбележи, че ако търсите за улавяне искания от съществуващите услуги и след това да ги замествам, проект на VCR е пренесен до няколко езика и е много полезно.
<Силен> Какво е? Силен>
Twisted идва с функция, наречена по-излежава, вдъхновен от Apache. Но, който иска да се включват Twisted като зависимостта?
Това се основава на бутилка, и по този начин се поддържа няколко WSGI Неуспех (включително Twisted и gevent), и е трябвало да бъде лека. , В който е документ е такава, в която се съхраняват както на заглавията и съдържанието за HTTP отговор:
HTTP / 1.0 200 OK
Content-Length: 137
Content-Type: текст / HTML
& Nbsp; <главата>
& Nbsp; <заглавие> Basic Test Page заглавие>
& Nbsp; глава>
& Nbsp; <тялото>
& Nbsp;
Здравейте, аз съм на пробна страница
& Nbsp; тялото>
Имайте предвид, че това изисква само нови редове за колекторите - връща превоз се добавят автоматично за удобство.
<Силен> Монтаж
Лесно Peasy:
Sudo PIP инсталирате ASIS
Или за тези, които предпочитат от източник:
Git клонинг https://github.com/seomoz/asis
CD ASIS && Sudo питон setup.py инсталиране
<Силен> Usage
Можете да стартирате ASIS сървъра сравнително лесно:
внос ASIS
# Сервирайте файлове, съхранявани в "Foo /" на порт 8080
сървър = asis.Server ("трънки", 8080)
server.run ()
...
server.stop ()
Алтернативно, може да се използва в контекста мениджър начин:
внос ASIS
искания за внос
с asis.Server ("трънки") като сървър:
& Nbsp; requests.get ("HTTP: // Localhost: 8080 / Foo / bar.asis")
Има и помощна програма на командния ред са включени за ваше удобство, за сервиране Asis файлове като самостоятелен сървър, което е особено полезно за да гледат на тези файлове чрез извиване или браузъра:
# Сервирайте файлове от "Foo /" на порт 8080
ASIS-сървър Foo --port 8080
# Same, използвайки gevent и е многословно
ASIS-сървър Foo --port 8080 --server gevent --verbose
<Силен> звънци и свирки
Има няколко функции, може да се наложи да се възползвате от:
Съдържание кодираща
Ако ви снабди заглавната част на Content-Encoding или като GZIP или дефлация, равнинните съдържанието съхраняват във файла се компресират и се изпращат по жицата по този начин. В тези случаи, можете да оставите Content-Length като 0, а дължината на истинското съдържание (след компресиране) ще бъдат изпратени на мястото си. Например, следното се предават като GZIP-сгъстен съдържание правилно към браузъра:
HTTP / 1.0 200 OK
Content-Length: 0
Content-Type: текст / обикновен
Content-Encoding: GZIP
Здравей Свят!
Кодова
Ако включва набор от знаци във вашата Content-Type с глава, а след това си съдържание ще се тълкува като UTF-8 на диск, и след това, кодиран в условие кодиране. Идеята е да се помогне на процеса на редактиране, така че не е нужно изрично да запишете вашите примери в техния деклариран набор от символи. Подобно промени Content-Encoding, заглавната част на Content-Length се преизчисли, за да бъде вярна, след приключване на трансформацията.
<Силен> Modes
По подразбиране сървърът се стартира с gevent сървъра, и е започнал през фон зелена нишка, и тя трябваше да е готов да служи искания, веднага щом Run () връща.
Алтернативно, сървърът може да се стартира по два различни режима, вилица и блок. Ако вилката, а след това тя ще върви сървъра в отделен процес, и тя продължава да работи едновременно като контекст за управление и след извикването Run (). Ако е избран блок, а след това той работи в блокиращ начин. Например:
# Пусни го в отделен процес
с asis.Server ("трънки", порт = 8080, режим = "вилицата"):
& Nbsp; # Направи някои искания
& Nbsp; ...
<> Силни примери и тестове
Включено в тук са няколко примера за по-е документи, и test.py може да се управлява директно да се потвърди, че те се прехвърлят правилно:
./test.py
Той също така дава пример за това как може да го включи в своя единица тестове.
<Силен> Принос
. Въпроси, коментари, идеи винаги добре дошли
<силни> Изисквания :
- Python
Коментари не е намерена