Skip to content

Commit

Permalink
SE-702: Refactored to use delete_entities() and removed 'Id-' prefix …
Browse files Browse the repository at this point in the history
…from create_transaction_portfolio()
  • Loading branch information
cscialino committed Jan 14, 2022
1 parent b55901f commit e522d29
Show file tree
Hide file tree
Showing 3 changed files with 31 additions and 15 deletions.
20 changes: 6 additions & 14 deletions sdk/tests/utilities/base_valuation_utilities.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import lusid.models as models

from utilities import TestDataUtilities, PortfolioLoader, InstrumentLoader, IdGenerator
from utilities.id_generator_utilities import delete_entities

class BaseValuationUtilities(unittest.TestCase):

Expand Down Expand Up @@ -42,11 +43,11 @@ def setUpClass(cls):
code_prefix="portfolio-"
)

cls.portfolio_code = cls.test_data_utilities.create_transaction_portfolio(
cls.test_data_utilities.create_transaction_portfolio(
scope=TestDataUtilities.tutorials_scope,
code=cls.portfolio_code
)
cls.xccy_portfolio_code = cls.test_data_utilities.create_transaction_portfolio(
cls.test_data_utilities.create_transaction_portfolio(
TestDataUtilities.tutorials_scope,
code=cls.xccy_portfolio_code
)
Expand Down Expand Up @@ -133,15 +134,6 @@ def create_valuation_request(

@classmethod
def tearDownClass(cls):
# Delete Portfolios once tests are finished
portfolio_codes = [
cls.portfolio_code,
cls.xccy_portfolio_code,
]

# Delete portfolio once tests are concluded
for code in portfolio_codes:
cls.portfolios_api.delete_portfolio(TestDataUtilities.tutorials_scope, code)

# Delete instruments
cls.instrument_loader.delete_instruments()
# # Delete test instruments and portfolios
cls.instrument_loader.delete_instruments()
delete_entities(cls.id_generator)
2 changes: 1 addition & 1 deletion sdk/tests/utilities/test_data_utilities.py
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ def create_transaction_portfolio(self, scope, code=None, currency="GBP"):

# Details of the new portfolio to be created, created here with the minimum set of mandatory fields
request = models.CreateTransactionPortfolioRequest(display_name=f"Portfolio-{guid}",
code=f"Id-{guid}",
code=guid,
base_currency=currency,
created=effective_date)

Expand Down
24 changes: 24 additions & 0 deletions sdk/tests/utilities/test_id_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,23 @@
import uuid

from utilities import IdGenerator
from utilities.id_generator_utilities import delete_entities
import lusid
from utilities import TestDataUtilities
from parameterized import parameterized


class IdGeneratorTests(unittest.TestCase):

@classmethod
def setUpClass(cls) -> None:

api_client = TestDataUtilities.api_client()

# Setup required LUSID APIs
cls.transaction_portfolios_api = lusid.TransactionPortfoliosApi(api_client)
cls.test_data_utilities = TestDataUtilities(cls.transaction_portfolios_api)

def test_use_default_scope_when_not_specified(self):
id_generator = IdGenerator()
self.assertEqual(IdGenerator.default_scope, id_generator.scope)
Expand Down Expand Up @@ -171,3 +183,15 @@ def test_add_scope_and_code_with_annotations(self):
self.assertEqual(test_code, item[2])
self.assertEqual("val1", item[3])
self.assertEqual("val2", item[4])

def test_delete_entities_for_multiple_entities(self):
id_generator = IdGenerator()
n = 5

for i in range(n):
_, scope, code = id_generator.generate_scope_and_code(entity="portfolio", scope="TestDeletion", code_prefix=f"{str(i)}-")
self.test_data_utilities.create_transaction_portfolio(scope=scope, code=code)

delete_entities(id_generator)
gen_vals = set(id_generator.pop_scope_and_codes())
self.assertEqual(0, len(gen_vals))

0 comments on commit e522d29

Please sign in to comment.