https://github.com/vb64/test.helper.gae
Class for autotests GoogleAppEngine python apps
https://github.com/vb64/test.helper.gae
googleappengine python27 unittest
Last synced: 7 months ago
JSON representation
Class for autotests GoogleAppEngine python apps
- Host: GitHub
- URL: https://github.com/vb64/test.helper.gae
- Owner: vb64
- License: mit
- Created: 2018-06-30T15:45:02.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2021-06-01T23:42:43.000Z (over 4 years ago)
- Last Synced: 2025-07-05T17:35:53.565Z (7 months ago)
- Topics: googleappengine, python27, unittest
- Language: Python
- Homepage:
- Size: 31.3 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Class for autotests GoogleAppEngine Standard Environment Python2.7 apps
[](https://github.com/vb64/test.helper.gae/actions?query=workflow%3A%22test.helper.gae+tests%22)
[](https://www.codacy.com/manual/vb64/test.helper.gae?utm_source=github.com&utm_medium=referral&utm_content=vb64/test.helper.gae&utm_campaign=Badge_Grade)
[](https://www.codacy.com/manual/vb64/test.helper.gae?utm_source=github.com&utm_medium=referral&utm_content=vb64/test.helper.gae&utm_campaign=Badge_Coverage)
## Install
```bash
pip install tester-gae
```
## Usage in tests
```python
from google.appengine.ext import ndb
from google.appengine.api.taskqueue import Queue, Task
from tester_gae import TestGae
class TestTable(ndb.Model):
"""
GAE datatsore table
"""
date = ndb.DateTimeProperty(auto_now_add=True)
class TestGaeApp(TestGae):
"""
test GAE app
"""
def setUp(self):
TestGae.setUp(self, "path/to/you/gae/app/dir") # where app.yaml located
self.queue = Queue('default')
self.queue.add(Task('xxx', url='/'))
def test_check_db_tables(self):
"""
check db table items count
"""
self.check_db_tables([
(TestTable, 0),
])
item = TestTable()
item.put()
self.check_db_tables([
(TestTable, 1),
])
def test_queue(self):
"""
check for number of tasks in queue
"""
self.assert_tasks_num(1)
tasks = self.gae_tasks(queue_name='default', flush_queue=False)
self.assertEqual(len(tasks), 1)
self.assert_tasks_num(1)
tasks = self.gae_tasks(queue_name='default', flush_queue=True)
self.assertEqual(len(tasks), 1)
self.assert_tasks_num(0)
def test_flask_execute(self):
"""
execute queue in fask app context
"""
from flask import Flask
app = Flask(__name__)
app.config['TESTING'] = True
@app.route('/', methods=['POST'])
def root_page():
"""
flask view
"""
return 'OK'
client = app.test_client()
data = self.gae_tasks_dict()
assert len(data) == 1
task = data[data.keys()[0]]
self.gae_task_flask_execute(task, client, is_delete=False, is_debug_print=True)
data = self.gae_tasks_dict()
assert len(data) == 1
self.gae_task_flask_execute(task, client, is_debug_print=True)
data = self.gae_tasks_dict()
assert not data
self.queue.add(Task('xxx', url='/'))
self.gae_queue_flask_execute(client)
data = self.gae_tasks_dict()
assert not data
def test_dict(self):
"""
get queue content as dict
"""
data = self.gae_tasks_dict()
assert len(data) == 1
assert 'task1' in data
def test_dump(self):
"""
dump queue content
"""
self.gae_queue_dump()
self.gae_queue_dump(fields=['name', 'url'])
```