def _geoip_setup_resolver(cls): # Lazy init of GeoIP resolver if izi._geoip_resolver is not None: return geofile = config.get('geoip_database') try: izi._geoip_resolver = GeoIPResolver.open(geofile) or False except Exception as e: _logger.warning('Cannot load GeoIP: %s', ustr(e))
def _get_sys_logs(self): """ Utility method to send a publisher warranty get logs messages. """ msg = self._get_message() arguments = {'arg0': ustr(msg), "action": "update"} url = config.get("publisher_warranty_url") r = requests.post(url, data=arguments, timeout=30) r.raise_for_status() return literal_eval(r.text)
def registries(cls): """ A mapping from database names to registries. """ size = config.get('registry_lru_size', None) if not size: # Size the LRU depending of the memory limits if os.name != 'posix': # cannot specify the memory limit soft on windows... size = 42 else: # A registry takes 10MB of memory on average, so we reserve # 10Mb (registry) + 5Mb (working memory) per registry avgsz = 15 * 1024 * 1024 size = int(config['limit_memory_soft'] / avgsz) return LRU(size)
def test_00_payment_advice_flow(self): # I create a new Payment Advice with NEFT Transaction Enable payment_advice = self.Advice.create({ 'name': 'NEFT Advice', 'bank_id': self.bank_1.id, 'line_ids': [(0, 0, { 'employee_id': self.employee_fp.id, 'name': '90125452552', 'ifsc_code': 'abn45215145', 'bysal': 25000.00, }), (0, 0, { 'employee_id': self.employee_al.id, 'name': '00014521111232', 'ifsc_code': 'sbi45452145', 'bysal': 20000.00, })], }) # I check that the Payment Advice is in "Draft" self.assertEqual(payment_advice.state, 'draft') # Now I confirm Payment Advice payment_advice.confirm_sheet() # I check that the Payment Advice state is "Confirmed" self.assertEqual(payment_advice.state, 'confirm') # In order to test the PDF report defined on a Payment Advice, we will print a Print Advice Report when NEFT is checked data, data_format = self.env.ref( 'l10n_in_hr_payroll.payroll_advice').render(payment_advice.ids) if config.get('test_report_directory'): open( os.path.join(config['test_report_directory'], 'l10n_in_hr_payroll_summary_report' + data_format), 'wb+').write(data)
def test_00_payslip_flow(self): """ Testing payslip flow and report printing """ # I create an employee Payslip richard_payslip = self.env['hr.payslip'].create({ 'name': 'Payslip of Richard', 'employee_id': self.richard_emp.id }) payslip_input = self.env['hr.payslip.input'].search([ ('payslip_id', '=', richard_payslip.id) ]) # I assign the amount to Input data payslip_input.write({'amount': 5.0}) # I verify the payslip is in draft state self.assertEqual(richard_payslip.state, 'draft', 'State not changed!') context = { "lang": "en_US", "tz": False, "active_model": "ir.ui.menu", "department_id": False, "section_id": False, "active_ids": [self.ref("hr_payroll.menu_department_tree")], "active_id": self.ref("hr_payroll.menu_department_tree") } # I click on 'Compute Sheet' button on payslip richard_payslip.with_context(context).compute_sheet() # Then I click on the 'Confirm' button on payslip richard_payslip.action_payslip_done() # I verify that the payslip is in done state self.assertEqual(richard_payslip.state, 'done', 'State not changed!') # I want to check refund payslip so I click on refund button. richard_payslip.refund_sheet() # I check on new payslip Credit Note is checked or not. payslip_refund = self.env['hr.payslip'].search([ ('name', 'like', 'Refund: ' + richard_payslip.name), ('credit_note', '=', True) ]) self.assertTrue(bool(payslip_refund), "Payslip not refunded!") # I want to generate a payslip from Payslip run. payslip_run = self.env['hr.payslip.run'].create({ 'date_end': '2011-09-30', 'date_start': '2011-09-01', 'name': 'Payslip for Employee' }) # I create record for generating the payslip for this Payslip run. payslip_employee = self.env['hr.payslip.employees'].create( {'employee_ids': [(4, self.richard_emp.id)]}) # I generate the payslip by clicking on Generat button wizard. payslip_employee.with_context(active_id=payslip_run.id).compute_sheet() # I open Contribution Register and from there I print the Payslip Lines report. self.env['payslip.lines.contribution.register'].create({ 'date_from': '2011-09-30', 'date_to': '2011-09-01' }) # I print the payslip report data, data_format = self.env.ref( 'hr_payroll.action_report_payslip').render(richard_payslip.ids) if config.get('test_report_directory'): open( os.path.join(config['test_report_directory'], 'hr_payroll-payslip.' + data_format), 'wb+').write(data) # I print the payslip details report data, data_format = self.env.ref( 'hr_payroll.payslip_details_report').render(richard_payslip.ids) if config.get('test_report_directory'): open( os.path.join(config['test_report_directory'], 'hr_payroll-payslipdetails.' + data_format), 'wb+').write(data) # I print the contribution register report context = { 'model': 'hr.contribution.register', 'active_ids': [self.ref('hr_payroll.hr_houserent_register')] } test_reports.try_report_action( self.env.cr, self.env.uid, 'action_payslip_lines_contribution_register', context=context, our_module='hr_payroll')
import uuid import logging from izi import api, fields, models from izi.tools import config, ormcache, mute_logger, pycompat _logger = logging.getLogger(__name__) """ A dictionary holding some configuration parameters to be initialized when the database is created. """ _default_parameters = { "database.secret": lambda: pycompat.text_type(uuid.uuid4()), "database.uuid": lambda: pycompat.text_type(uuid.uuid1()), "database.create_date": fields.Datetime.now, "web.base.url": lambda: "http://localhost:%s" % config.get('http_port'), } class IrConfigParameter(models.Model): """Per-database storage of configuration key-value pairs.""" _name = 'ir.config_parameter' _rec_name = 'key' key = fields.Char(required=True, index=True) value = fields.Text(required=True) _sql_constraints = [('key_uniq', 'unique (key)', 'Key must be unique.')] @api.model_cr @mute_logger('izi.addons.base.ir.ir_config_parameter')