Files
brave-core/script/test/githubmock.py
T
Brian Clifton a82068b5de Make it easy to run unit tests for our Python scripts + increase coverage
- Fixes broken unit tests
- Fixes linting errors
- Adds tests for upload scenario
- Adds test for retry scenario (making sure calls are in order)

New `npm run` task created; runs linter + tests. To try it, run:
`npm run test-python-scripts`
2019-01-15 16:27:10 -07:00

90 lines
2.2 KiB
Python

#!/usr/bin/env python
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this file,
# You can obtain one at http://mozilla.org/MPL/2.0/.
from mock import MagicMock
class Repo():
def __init__(self):
self.releases = self.Releases()
def repos(self, name):
# print('Repo(' + name + ') called')
return self
class Releases():
def __init__(self):
self._releases = []
self.assets = Assets()
self.patch = MagicMock()
def get(self):
return self._releases
def __call__(self, id):
obj = [x for x in self._releases if x.id == id]
if len(obj) == 1:
# print('Releases.call(' + str(id) + ') returned tag_name: "' + obj[0].tag_name + '"')
return obj[0]
return None
class Asset():
def __init__(self, id=-1, name=""):
self.id = id
self.name = name
self.delete = MagicMock()
def __getitem__(self, name):
# print('getitem for ' + name)
if name == 'id':
return self.id
elif name == 'name':
return self.name
class Assets():
def __init__(self):
self._assets = []
self.post = MagicMock()
def __iter__(self):
return iter(self._assets)
def get(self):
return self._assets
def __call__(self, id):
obj = [x for x in self._assets if x.id == id]
if len(obj) == 1:
# print('Assets.call(' + str(id) + ') returned name: "' + obj[0].name + '"')
return obj[0]
return None
class Release():
def __init__(self):
self.id = -1
self.tag_name = ""
self.draft = True
self.assets = Assets()
def __getitem__(self, name):
# print('getitem for ' + name)
if name == 'id':
return self.id
elif name == 'tag_name':
return self.tag_name
elif name == 'draft':
return self.draft
elif name == 'assets':
return self.assets
def __getattr__(self, attr):
# print('Not found: ' + attr)
return None