- 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`
90 lines
2.2 KiB
Python
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
|