Git Product home page Git Product logo

behave-rest's People

Contributors

paultaykalo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

behave-rest's Issues

Происхождение context.r

Здравствуйте Олег!

Я работаю инженером по тестированию backend-а. Как начинающий автоматизатор тестирования, осваиваю Python3. 

Во первых, хочу поблагодарить вас за behave-rest - получился очень полезный инструмент для QA-инженера, постоянно используем в работе для тестировния api. :)

Так как я предпочитаю понимать как работает и что делает инструмент, которым пользуюсь, я начал разбираться в структуре фреймворка и сильно так завис на одном моменте. 

Вопрос такой: что такое context.r ? 

Если предназначение context в behave я понимаю, то происхождение  и назначение r поставило меня в тупик.

В behave_rest/steps/init.py неоднократно встречается context.r

Приведу пример:

@step('I want to reuse "{parameter_name}" parameter')
def store_parameter(context, parameter_name): data = context.r.json()
return setattr(context, parameter_name, data[parameter_name])

context.r.json() подозрительно напоминает то, как мы присваеваем объект Responce (модуль requests) в переменную r:

r=requests.get("какой-нибудь урл"), где результат запроса из r потом распарсили в словарь с помощью json().

В дальнейшем, в файле также можно встретить конструкцию context.r. 

Связана ли она с модулем requests и если связана, то где во фреймворке behave-rest описано, что в r присваивается объект Responce?

Спасибо за внимание, буду очень рад если проясните ситуацию :)

Observing SSL Error

@search @twitter
Scenario: Search for tweets # features/twitter.feature:9
Given I set base URL to "https://api.twitter.com/1.1" # behave_rest/steps/init.py:13 0.003s
And I set "Authorization" header to "context.twitter_auth" # behave_rest/steps/init.py:36 0.000s
When I make a GET request to "search/tweets.json" with parameters # behave_rest/steps/init.py:121 0.458s
| q |
| stanfy |
Traceback (most recent call last):
File "/usr/lib/python2.6/site-packages/behave/model.py", line 1329, in run
match.run(runner.context)
File "/usr/lib/python2.6/site-packages/behave/matchers.py", line 98, in run
self.func(context, *args, **kwargs)
File "/usr/lib64/python2.6/contextlib.py", line 34, in exit
self.gen.throw(type, value, traceback)
File "/usr/lib/python2.6/site-packages/behave/runner.py", line 454, in use_context_with_mode
yield
File "/usr/lib/python2.6/site-packages/behave/matchers.py", line 98, in run
self.func(context, *args, **kwargs)
File "/root/behave-rest/behave_rest/steps/init.py", line 138, in request_with_parameters
log_full(context.r)
File "/root/behave-rest/behave_rest/steps/init.py", line 244, in log_full
'\n'.join('{}: {}'.format(k, v) for k, v in req.headers.items()),
File "/root/behave-rest/behave_rest/steps/init.py", line 244, in
'\n'.join('{}: {}'.format(k, v) for k, v in req.headers.items()),
ValueError: zero length field name in format

  Captured stdout:

Captured stderr:
/usr/lib/python2.6/site-packages/requests/packages/urllib3/util/ssl_.py:335: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
SNIMissingWarning
/usr/lib/python2.6/site-packages/requests/packages/urllib3/util/ssl_.py:133: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. You can upgrade to a newer version of Python to solve this. For more information, see https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
InsecurePlatformWarning
/usr/lib/python2.6/site-packages/requests/packages/urllib3/connectionpool.py:852: InsecureRequestWarning: Unverified HTTPS request is being made. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
InsecureRequestWarning)

Then the response status code should equal 200                    # None
And the response status code should be among 200, 201             # None
And the response structure should equal "twitterSearchData"       # None
And the response header "status" should equal "200 OK"            # None

Failing scenarios:
features/twitter.feature:9 Search for tweets

0 features passed, 1 failed, 0 skipped
0 scenarios passed, 1 failed, 0 skipped
2 steps passed, 1 failed, 4 skipped, 0 undefined
Took 0m0.461s

Am i missing anything, Could you please help?

Type Error

Traceback (most recent call last):
File "/usr/lib/python2.7/site-packages/behave/model.py", line 1329, in run
match.run(runner.context)
File "/usr/lib/python2.7/site-packages/behave/matchers.py", line 98, in run
self.func(context, *args, **kwargs)
File "/home/centos/behave-rest/behave_rest/steps/init.py", line 136, in request_with_parameters
context.r = getattr(requests, request_verb.lower())(url, params, headers=context.headers, verify=context.verify_ssl)
TypeError: get() takes exactly 1 argument (4 given)

Could you please help to resolve this?

Cannot run the project

When I try run the projects (run command line: behave or behave features/twitter.feature) my promt shows the log above:

Exception ImportError: No module named yaml Traceback (most recent call last): File "/usr/local/bin/behave", line 11, in <module> sys.exit(main()) File "/Library/Python/2.7/site-packages/behave/__main__.py", line 109, in main failed = runner.run() File "/Library/Python/2.7/site-packages/behave/runner.py", line 672, in run return self.run_with_paths() File "/Library/Python/2.7/site-packages/behave/runner.py", line 677, in run_with_paths self.load_hooks() File "/Library/Python/2.7/site-packages/behave/runner.py", line 631, in load_hooks exec_file(hooks_path, self.hooks) File "/Library/Python/2.7/site-packages/behave/runner.py", line 304, in exec_file exec(code, globals, locals) File "features/environment.py", line 1, in <module> from yaml import load ImportError: No module named yaml

Any idea?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.