Commit 8d554fd0 authored by Jean Walrave's avatar Jean Walrave Committed by Romain Bignon

[humanis] new module

parent 5b7560f9
# -*- coding: utf-8 -*-
# Copyright(C) 2017 Jean Walrave
#
# This file is part of weboob.
#
# weboob is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# weboob is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
from __future__ import unicode_literals
from .module import HumanisModule
__all__ = ['HumanisModule']
# -*- coding: utf-8 -*-
# Copyright(C) 2016 Jean Walrave
#
# This file is part of weboob.
#
# weboob is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# weboob is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.browser import AbstractBrowser, URL
from .pages import LoginPage
class HumanisBrowser(AbstractBrowser):
PARENT = 'cmes'
login = URL('(?P<subsite>.*)fr/identification/login.cgi', LoginPage)
def __init__(self, weboob, baseurl, subsite, login, password, *args, **kwargs):
self.weboob = weboob
super(self.__class__, self).__init__(baseurl, login, password, subsite, *args, **kwargs)
# -*- coding: utf-8 -*-
# Copyright(C) 2016 Jean Walrave
#
# This file is part of weboob.
#
# weboob is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# weboob is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.tools.backend import Module, BackendConfig
from weboob.tools.value import ValueBackendPassword
from weboob.capabilities.bank import CapBank, AccountNotFound
from weboob.capabilities.base import find_object
from .browser import HumanisBrowser
__all__ = ['HumanisModule']
class HumanisModule(Module, CapBank):
NAME = 'humanis'
DESCRIPTION = u'Humanis Épargne Salariale'
MAINTAINER = u'Jean Walrave'
EMAIL = 'jwalrave@budget-insight.com'
LICENSE = 'AGPLv3+'
VERSION = '1.3'
CONFIG = BackendConfig(ValueBackendPassword('login', label=u'Code d\'accès', masked=False),
ValueBackendPassword('password', label='Mot de passe'))
BROWSER = HumanisBrowser
def create_default_browser(self):
return self.create_browser(
self.weboob,
self.weboob,
'https://www.gestion-epargne-salariale.fr',
'humanis/',
self.config['login'].get(),
self.config['password'].get()
)
def get_account(self, _id):
return find_object(self.browser.iter_accounts(), id=_id, error=AccountNotFound)
def iter_accounts(self):
return self.browser.iter_accounts()
def iter_history(self, account):
return self.browser.iter_history(account)
def iter_investment(self, account):
return self.browser.iter_investment(account)
# -*- coding: utf-8 -*-
# Copyright(C) 2016 Jean Walrave
#
# This file is part of weboob.
#
# weboob is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# weboob is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
from weboob.browser.pages import AbstractPage
class LoginPage(AbstractPage):
PARENT = 'cmes'
PARENT_URL = 'login'
BROWSER_ATTR = 'package.browser.CmesBrowser'
# -*- coding: utf-8 -*-
# Copyright(C) 2017 Jean Walrave
#
# This file is part of weboob.
#
# weboob is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# weboob is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with weboob. If not, see <http://www.gnu.org/licenses/>.
from __future__ import unicode_literals
from weboob.tools.test import BackendTest
class HumanisTest(BackendTest):
MODULE = 'humanis'
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment