Coverage for polar/customer_portal/repository/payment_method.py: 89%

9 statements  

« prev     ^ index     » next       coverage.py v7.10.6, created at 2025-12-05 15:52 +0000

1from uuid import UUID 1a

2 

3from sqlalchemy import Select 1a

4 

5from polar.auth.models import AuthSubject, Customer 1a

6from polar.kit.repository import ( 1a

7 RepositoryBase, 

8 RepositorySoftDeletionIDMixin, 

9 RepositorySoftDeletionMixin, 

10) 

11from polar.models import PaymentMethod 1a

12 

13 

14class CustomerPaymentMethodRepository( 1a

15 RepositorySoftDeletionIDMixin[PaymentMethod, UUID], 

16 RepositorySoftDeletionMixin[PaymentMethod], 

17 RepositoryBase[PaymentMethod], 

18): 

19 model = PaymentMethod 1a

20 

21 def get_readable_statement( 1a

22 self, auth_subject: AuthSubject[Customer] 

23 ) -> Select[tuple[PaymentMethod]]: 

24 return self.get_base_statement().where( 

25 PaymentMethod.customer_id == auth_subject.subject.id 

26 )