| Total Complexity | 4 |
| Total Lines | 60 |
| Duplicated Lines | 100 % |
Duplicate code is one of the most pungent code smells. A rule that is often used is to re-structure code once it is duplicated in three or more places.
Common duplication problems, and corresponding solutions are:
| 1 | """Script defined to test the Plan class.""" |
||
| 11 | View Code Duplication | class TestPlan(unittest.TestCase): |
|
|
|
|||
| 12 | """Class to test Plans.""" |
||
| 13 | |||
| 14 | @httpretty.activate |
||
| 15 | def test_create(self): |
||
| 16 | """Method defined to test plan creation.""" |
||
| 17 | httpretty.register_uri( |
||
| 18 | httpretty.POST, |
||
| 19 | "https://api.paystack.co/plan", |
||
| 20 | content_type='text/json', |
||
| 21 | body='{"status": true, "contributors": true}', |
||
| 22 | status=201, |
||
| 23 | ) |
||
| 24 | |||
| 25 | response = Plan.create( |
||
| 26 | name="John Doe", description="Payment plan for awesome people contributions", |
||
| 27 | amount=50000, interval="daily", send_invoices=True, ) |
||
| 28 | self.assertTrue(response['status']) |
||
| 29 | |||
| 30 | @httpretty.activate |
||
| 31 | def test_get(self): |
||
| 32 | """Function defined to test Plan get method.""" |
||
| 33 | httpretty.register_uri( |
||
| 34 | httpretty.GET, |
||
| 35 | "https://api.paystack.co/plan/78", |
||
| 36 | content_type='text/json', |
||
| 37 | body='{"status": true, "contributors": true}', |
||
| 38 | status=201, |
||
| 39 | ) |
||
| 40 | |||
| 41 | response = Plan.get(plan_id=78) |
||
| 42 | self.assertEqual(response['status'], True) |
||
| 43 | |||
| 44 | @httpretty.activate |
||
| 45 | def test_list(self): |
||
| 46 | """Function defined to test paystackapi plan list method.""" |
||
| 47 | httpretty.register_uri( |
||
| 48 | httpretty.GET, |
||
| 49 | "https://api.paystack.co/plan", |
||
| 50 | content_type='text/json', |
||
| 51 | body='{"status": true, "contributors": true}', |
||
| 52 | status=201, |
||
| 53 | ) |
||
| 54 | |||
| 55 | response = Plan.list() |
||
| 56 | self.assertEqual(response['status'], True) |
||
| 57 | |||
| 58 | @httpretty.activate |
||
| 59 | def test_update(self): |
||
| 60 | """Function defined to test paystackapi plan update.""" |
||
| 61 | httpretty.register_uri( |
||
| 62 | httpretty.PUT, |
||
| 63 | "https://api.paystack.co/plan/78", |
||
| 64 | content_type='text/json', |
||
| 65 | body='{"status": true, "contributors": true}', |
||
| 66 | status=201, |
||
| 67 | ) |
||
| 68 | |||
| 69 | response = Plan.update(plan_id=78, interval="monthly", amount=70000) |
||
| 70 | self.assertEqual(response['status'], True) |
||
| 71 | |||
| 74 |