diff --git a/abonapp/forms.py b/abonapp/forms.py index 1666c8a..b9e11d4 100644 --- a/abonapp/forms.py +++ b/abonapp/forms.py @@ -70,7 +70,7 @@ class AbonForm(forms.ModelForm): def save(self, commit=True): raw_password = self.cleaned_data['password'] - acc = super().save(commit=False) + acc = super(AbonForm, self).save(commit=False) acc.password = make_password(raw_password) if commit: acc.save() diff --git a/abonapp/models.py b/abonapp/models.py index 9b79aa9..ce737ea 100644 --- a/abonapp/models.py +++ b/abonapp/models.py @@ -164,7 +164,8 @@ class Abon(UserProfile): # покупаем тариф def pick_tariff(self, tariff, author, comment=None, deadline=None): - assert isinstance(tariff, Tariff) + if not isinstance(tariff, Tariff): + raise TypeError amount = round(tariff.amount, 2) diff --git a/agent/mod_mikrotik.py b/agent/mod_mikrotik.py index 1924b14..103331f 100644 --- a/agent/mod_mikrotik.py +++ b/agent/mod_mikrotik.py @@ -161,7 +161,8 @@ class TransmitterManager(BaseTransmitter, metaclass=ABCMeta): self.s.close() def _exec_cmd(self, cmd): - assert isinstance(cmd, list) + if not isinstance(cmd, list): + raise TypeError result_iter = self.ar.talk_iter(cmd) res = [] for rt in result_iter: @@ -171,7 +172,8 @@ class TransmitterManager(BaseTransmitter, metaclass=ABCMeta): return res def _exec_cmd_iter(self, cmd): - assert isinstance(cmd, list) + if not isinstance(cmd, list): + raise TypeError result_iter = self.ar.talk_iter(cmd) for rt in result_iter: if len(rt) < 2: @@ -223,7 +225,8 @@ class QueueManager(TransmitterManager, metaclass=ABCMeta): return self._build_shape_obj(ret[0]) def add(self, user): - assert isinstance(user, AbonStruct) + if not isinstance(user, AbonStruct): + raise TypeError if user.tariff is None or not isinstance(user.tariff, TariffStruct): return return self._exec_cmd(['/queue/simple/add', @@ -236,7 +239,8 @@ class QueueManager(TransmitterManager, metaclass=ABCMeta): ]) def remove(self, user): - assert isinstance(user, AbonStruct) + if not isinstance(user, AbonStruct): + raise TypeError q = self.find('uid%d' % user.uid) if q is not None: return self._exec_cmd(['/queue/simple/remove', '=.id=' + getattr(q, 'queue_id', '')]) @@ -246,7 +250,8 @@ class QueueManager(TransmitterManager, metaclass=ABCMeta): return self._exec_cmd(['/queue/simple/remove', '=numbers=' + ','.join(q_ids)]) def update(self, user): - assert isinstance(user, AbonStruct) + if not isinstance(user, AbonStruct): + raise TypeError if user.tariff is None or not isinstance(user.tariff, TariffStruct): return queue = self.find('uid%d' % user.uid) @@ -282,7 +287,8 @@ class QueueManager(TransmitterManager, metaclass=ABCMeta): yield int(queue[1]['=.id'].replace('*', ''), base=16) def disable(self, user): - assert isinstance(user, AbonStruct) + if not isinstance(user, AbonStruct): + raise TypeError q = self.find('uid%d' % user.uid) if q is None: self.add(user) @@ -291,7 +297,8 @@ class QueueManager(TransmitterManager, metaclass=ABCMeta): return self._exec_cmd(['/queue/simple/disable', '=.id=*' + getattr(q, 'queue_id', '')]) def enable(self, user): - assert isinstance(user, AbonStruct) + if not isinstance(user, AbonStruct): + raise TypeError q = self.find('uid%d' % user.uid) if q is None: self.add(user) @@ -309,7 +316,8 @@ class IpAddressListObj(IpStruct): class IpAddressListManager(TransmitterManager, metaclass=ABCMeta): def add(self, list_name, ip, timeout=None): - assert isinstance(ip, IpStruct) + if not isinstance(ip, IpStruct): + raise TypeError commands = [ '/ip/firewall/address-list/add', '=list=%s' % list_name, @@ -342,7 +350,8 @@ class IpAddressListManager(TransmitterManager, metaclass=ABCMeta): ]) def find(self, ip, list_name): - assert isinstance(ip, IpStruct) + if not isinstance(ip, IpStruct): + raise TypeError return self._exec_cmd([ '/ip/firewall/address-list/print', 'where', '?list=%s' % list_name, @@ -392,8 +401,9 @@ class MikrotikTransmitter(QueueManager, IpAddressListManager): IpAddressListManager.remove(self, ip_list_entity[0]['=.id']) def add_user(self, user, ip_timeout=None): - super(MikrotikTransmitter, self).add_user(user) - assert isinstance(user.ip, IpStruct) + super(MikrotikTransmitter, self).add_user(user, ip_timeout) + if not isinstance(user.ip, IpStruct): + raise TypeError if user.tariff is None or not isinstance(user.tariff, TariffStruct): return QueueManager.add(self, user) @@ -412,8 +422,9 @@ class MikrotikTransmitter(QueueManager, IpAddressListManager): # обновляем основную инфу абонента def update_user(self, user, ip_timeout=None): - super(MikrotikTransmitter, self).update_user(user) - assert isinstance(user.ip, IpStruct) + super(MikrotikTransmitter, self).update_user(user, ip_timeout) + if not isinstance(user.ip, IpStruct): + raise TypeError # ищем ip абонента в списке ip find_res = IpAddressListManager.find(self, user.ip, LIST_USERS_ALLOWED) diff --git a/agent/structs.py b/agent/structs.py index 849a296..e68a645 100644 --- a/agent/structs.py +++ b/agent/structs.py @@ -38,7 +38,8 @@ class IpStruct(BaseStruct): return self.__ip def __eq__(self, other): - assert isinstance(other, IpStruct) + if not isinstance(other, IpStruct): + raise TypeError('Instance must be IpStruct') return self.__ip == other.__ip def __int__(self): @@ -100,8 +101,10 @@ class AbonStruct(BaseStruct): def serialize(self): if self.tariff is None: return - assert isinstance(self.tariff, TariffStruct) - assert isinstance(self.ip, IpStruct) + if not isinstance(self.tariff, TariffStruct): + raise TypeError('Instance must be TariffStruct') + if not isinstance(self.ip, IpStruct): + raise TypeError('Instance must be IpStruct') dt = pack("!LII?", self.uid, int(self.ip), self.tariff.tid, self.is_active) return dt @@ -110,13 +113,15 @@ class AbonStruct(BaseStruct): self.uid = dt[0] self.ip = IpStruct(dt[1]) if tariff is not None: - assert isinstance(tariff, TariffStruct) + if not isinstance(tariff, TariffStruct): + raise TypeError self.tariff = tariff self.is_active = dt['3'] return self def __eq__(self, other): - assert isinstance(other, AbonStruct) + if not isinstance(other, AbonStruct): + raise TypeError r = self.uid == other.uid and self.ip == other.ip r = r and self.tariff == other.tariff return r @@ -147,5 +152,6 @@ class ShapeItem(BaseStruct): return self def __eq__(self, other): - assert isinstance(other, ShapeItem) + if not isinstance(other, ShapeItem): + raise TypeError return self.sid == other.sid and self.abon == other.abon diff --git a/chatbot/telebot.py b/chatbot/telebot.py index 42e0ad5..160dc1a 100755 --- a/chatbot/telebot.py +++ b/chatbot/telebot.py @@ -31,7 +31,8 @@ class DjingTelebot(helper.ChatHandler): # задаём вопрос пользователю, и ожидаем ответ в fn def _question(self, text, fn): - assert isinstance(fn, collections.Callable) + if not isinstance(fn, collections.Callable): + raise TypeError self._dialog_fn = fn if text is not None: self._sent_reply(text) @@ -75,7 +76,8 @@ class DjingTelebot(helper.ChatHandler): if text in list(self.cmds.keys()): self.cmds[text]() elif self._dialog_fn is not None: - assert callable(self._dialog_fn) + if not callable(self._dialog_fn): + raise TypeError self._dialog_fn(text) self._dialog_fn = None else: @@ -92,7 +94,8 @@ class DjingTelebot(helper.ChatHandler): try: TelegramBot.objects.get(user=profile) except TelegramBot.DoesNotExist: - assert self._chat_id != 0 + if self._chat_id == 0: + raise ChatException('telebot.py. def question_name: Chat id is empty') TelegramBot.objects.create( user=profile, chat_id=self._chat_id diff --git a/devapp/dev_types.py b/devapp/dev_types.py index cf40a88..a61cfbd 100644 --- a/devapp/dev_types.py +++ b/devapp/dev_types.py @@ -9,7 +9,8 @@ class DLinkPort(BasePort): def __init__(self, num, name, status, mac, speed, snmpWorker): BasePort.__init__(self, num, name, status, mac, speed) - assert issubclass(snmpWorker.__class__ , SNMPBaseWorker) + if not issubclass(snmpWorker.__class__ , SNMPBaseWorker): + raise TypeError self.snmp_worker = snmpWorker # выключаем этот порт @@ -79,7 +80,8 @@ class DLinkDevice(DevBase, SNMPBaseWorker): class ONUdev(BasePort): def __init__(self, num, name, status, mac, speed, signal, snmpWorker): super(ONUdev, self).__init__(num, name, status, mac, speed) - assert issubclass(snmpWorker.__class__, SNMPBaseWorker) + if not issubclass(snmpWorker.__class__, SNMPBaseWorker): + raise TypeError self.snmp_worker = snmpWorker self.signal = signal @@ -181,7 +183,8 @@ class EltexPort(BasePort): def __init__(self, snmpWorker, *args, **kwargs): BasePort.__init__(self, *args, **kwargs) - assert issubclass(snmpWorker.__class__, SNMPBaseWorker) + if not issubclass(snmpWorker.__class__, SNMPBaseWorker): + raise TypeError self.snmp_worker = snmpWorker # выключаем этот порт diff --git a/devapp/tests.py b/devapp/tests.py index ee30280..ea6adf0 100644 --- a/devapp/tests.py +++ b/devapp/tests.py @@ -14,7 +14,8 @@ class DevTest(TestCase): ports = dev.get_ports() print('gports') for port in ports: - assert issubclass(port.__class__, dev_types.BasePort) + if not issubclass(port.__class__, dev_types.BasePort): + raise TypeError print(('\tPort:', port.nm, port.st, port.mac(), port.sp)) # Disable 2 port print((ports[1].disable())) diff --git a/docs/dev.md b/docs/dev.md index c6c73e6..af79bb3 100644 --- a/docs/dev.md +++ b/docs/dev.md @@ -12,7 +12,8 @@ class EltexPort(BasePort): def __init__(self, snmpWorker, *args, **kwargs): BasePort.__init__(self, *args, **kwargs) - assert issubclass(snmpWorker.__class__, SNMPBaseWorker) + if not issubclass(snmpWorker.__class__, SNMPBaseWorker): + raise TypeError self.snmp_worker = snmpWorker # выключаем этот порт diff --git a/mydefs.py b/mydefs.py index 7eea08a..5bd45fa 100644 --- a/mydefs.py +++ b/mydefs.py @@ -83,8 +83,8 @@ class MyGenericIPAddressField(models.GenericIPAddressField): value = super(MyGenericIPAddressField, self).get_prep_value(value) return ip2int(value) - def to_python(self, addr): - return addr + def to_python(self, value): + return value def get_internal_type(self): return 'PositiveIntegerField' diff --git a/photo_app/models.py b/photo_app/models.py index 5f33500..abcd26f 100644 --- a/photo_app/models.py +++ b/photo_app/models.py @@ -27,7 +27,7 @@ class Photo(models.Model): def save(self, *args, **kwargs): if not self.image: return - super(Photo, self).save() + super(Photo, self).save(*args, **kwargs) im = Image.open(self.image.path) im.thumbnail((759, 759), Image.ANTIALIAS) @@ -42,7 +42,7 @@ class Photo(models.Model): im.save(fname) os.remove(self.image.path) self.image = "%s.%s" % (hs, ext) - super(Photo, self).save() + super(Photo, self).save(*args, **kwargs) # class Meta: # unique_together = (('image',),) diff --git a/tariff_app/models.py b/tariff_app/models.py index 0981537..464cf31 100644 --- a/tariff_app/models.py +++ b/tariff_app/models.py @@ -19,7 +19,8 @@ class Tariff(models.Model): ob = [TC for TC in TARIFF_CHOICES if TC[0] == self.calc_type] if len(ob) > 0: res_type = ob[0][1] - assert issubclass(res_type, TariffBase) + if not issubclass(res_type, TariffBase): + raise TypeError return res_type def calc_deadline(self):