from odoo.tests.common import HttpCase, tagged @tagged('post_install', '-at_install') class TestMembershipVerify(HttpCase): def setUp(self): super().setUp() self.tier = self.env['community.membership.tier'].create({ 'name': 'Individual', 'code': 'VERIFY-IND', 'price': 50.0, 'period': 'annual', }) self.partner = self.env['res.partner'].create({ 'name': 'Verify Tester', 'membership_tier_id': self.tier.id, }) self.partner.action_activate_membership() def test_verify_valid_member(self): response = self.url_open(f'/membership/verify/{self.partner.membership_member_id}') self.assertEqual(response.status_code, 200) self.assertIn(b'Valid Membership', response.content) self.assertIn(b'Verify Tester', response.content) def test_verify_expired_member(self): self.partner.membership_state = 'expired' response = self.url_open(f'/membership/verify/{self.partner.membership_member_id}') self.assertEqual(response.status_code, 200) self.assertIn(b'Expired Membership', response.content) def test_verify_unknown_member(self): response = self.url_open('/membership/verify/NOT-A-REAL-ID') self.assertEqual(response.status_code, 200) self.assertIn(b'Not Found', response.content) def test_qr_generated_on_activation(self): self.assertTrue(self.partner.membership_card_qr, "Activated member should have a generated QR code")