Server IP : 127.0.0.2 / Your IP : 13.58.229.23 Web Server : Apache/2.4.18 (Ubuntu) System : User : www-data ( ) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : disk_free_space,disk_total_space,diskfreespace,dl,exec,fpaththru,getmyuid,getmypid,highlight_file,ignore_user_abord,leak,listen,link,opcache_get_configuration,opcache_get_status,passthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,php_uname,phpinfo,posix_ctermid,posix_getcwd,posix_getegid,posix_geteuid,posix_getgid,posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid,posix,_getppid,posix_getpwnam,posix_getpwuid,posix_getrlimit,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid,posix_setpgid,posix_setsid,posix_setuid,posix_times,posix_ttyname,posix_uname,pclose,popen,proc_open,proc_close,proc_get_status,proc_nice,proc_terminate,shell_exec,source,show_source,system,virtual MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /opt/odoo/addons/membership/tests/ |
Upload File : |
# -*- coding: utf-8 -*- import datetime from dateutil.relativedelta import relativedelta from odoo.addons.membership.tests.common import TestMembershipCommon class TestMembership(TestMembershipCommon): def test_old_membership(self): self.membership_1.write({ 'membership_date_from': datetime.date.today() + relativedelta(years=-2), 'membership_date_to': datetime.date.today() + relativedelta(years=-1), }) self.partner_1.create_membership_invoice(product_id=self.membership_1.id, datas={'amount': 75.0}) self.assertEqual( self.partner_1.membership_state, 'old', 'membership: outdated subscription should put member in old state') def test_paid_membership(self): self.assertEqual( self.partner_1.membership_state, 'none', 'membership: default membership status of partners should be None') # subscribes to a membership self.partner_1.create_membership_invoice(product_id=self.membership_1.id, datas={'amount': 75.0}) # checks for invoices invoice = self.env['account.invoice'].search([('partner_id', '=', self.partner_1.id)], limit=1) self.assertEqual( invoice.state, 'draft', 'membership: new subscription should create a draft invoice') self.assertEqual( invoice.invoice_line_ids[0].product_id, self.membership_1, 'membership: new subscription should create a line with the membership as product') self.assertEqual( invoice.invoice_line_ids[0].price_unit, 75.0, 'membership: new subscription should create a line with the given price instead of product price') self.assertEqual( self.partner_1.membership_state, 'waiting', 'membership: new membership should be in waiting state') # the invoice is open -> customer goes to invoiced status invoice.action_invoice_open() self.assertEqual( self.partner_1.membership_state, 'invoiced', 'membership: after opening the invoice, customer should be in invoiced status') # the invoice is paid -> customer goes to paid status bank_journal = self.env['account.journal'].create({'name': 'Bank', 'type': 'bank', 'code': 'BNK67'}) invoice.pay_and_reconcile(bank_journal, invoice.amount_total) self.assertEqual( self.partner_1.membership_state, 'paid', 'membership: after paying the invoice, customer should be in paid status') # check second partner then associate them self.assertEqual( self.partner_2.membership_state, 'free', 'membership: free member customer should be in free state') self.partner_2.write({'free_member': False, 'associate_member': self.partner_1.id}) self.assertEqual( self.partner_2.membership_state, 'paid', 'membership: associated customer should be in paid state') def test_cancel_membership(self): self.assertEqual( self.partner_1.membership_state, 'none', 'membership: default membership status of partners should be None') # subscribes to a membership self.partner_1.create_membership_invoice(product_id=self.membership_1.id, datas={'amount': 75.0}) # checks for invoices invoice = self.env['account.invoice'].search([('partner_id', '=', self.partner_1.id)], limit=1) # the invoice is canceled -> membership state of the customer goes to canceled invoice.action_invoice_cancel() self.assertEqual(invoice.state, 'cancel') self.assertEqual(self.partner_1.membership_state, 'canceled')