data: Make Account.iter_accounts() argument optional.
This commit is contained in:
		
							parent
							
								
									6f1d01a3d4
								
							
						
					
					
						commit
						aaa26e9e61
					
				
					 2 changed files with 8 additions and 3 deletions
				
			
		| 
						 | 
					@ -220,16 +220,19 @@ class Account(str):
 | 
				
			||||||
                yield account
 | 
					                yield account
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @classmethod
 | 
					    @classmethod
 | 
				
			||||||
    def iter_accounts(cls, s: str) -> Iterator['Account']:
 | 
					    def iter_accounts(cls, s: Optional[str]=None) -> Iterator['Account']:
 | 
				
			||||||
        """Iterate account objects by name or classification
 | 
					        """Iterate account objects by name or classification
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        With no argument, returns an iterator of all known account names.
 | 
				
			||||||
        If you pass in a root account name, or a valid account string, returns
 | 
					        If you pass in a root account name, or a valid account string, returns
 | 
				
			||||||
        an iterator of all accounts under that account in the hierarchy.
 | 
					        an iterator of all accounts under that account in the hierarchy.
 | 
				
			||||||
        Otherwise, returns an iterator of all accounts with the given
 | 
					        Otherwise, returns an iterator of all accounts with the given
 | 
				
			||||||
        ``classification`` metadata.
 | 
					        ``classification`` metadata.
 | 
				
			||||||
        """
 | 
					        """
 | 
				
			||||||
 | 
					        if s is None:
 | 
				
			||||||
 | 
					            return (cls(acct) for acct in cls._meta_map)
 | 
				
			||||||
        # We append a stub subaccount to match root accounts.
 | 
					        # We append a stub subaccount to match root accounts.
 | 
				
			||||||
        if cls.is_account(f'{s}:Test'):
 | 
					        elif cls.is_account(f'{s}:RootsOK'):
 | 
				
			||||||
            return cls.iter_accounts_by_hierarchy(s)
 | 
					            return cls.iter_accounts_by_hierarchy(s)
 | 
				
			||||||
        else:
 | 
					        else:
 | 
				
			||||||
            return cls.iter_accounts_by_classification(s)
 | 
					            return cls.iter_accounts_by_classification(s)
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -444,6 +444,8 @@ def test_iter_accounts_by_classification(asset_hierarchy, arg, expect_subaccts):
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@pytest.mark.parametrize('arg,expect_subaccts', [
 | 
					@pytest.mark.parametrize('arg,expect_subaccts', [
 | 
				
			||||||
 | 
					    (None, ['Bank:CD', 'Bank:Checking', 'Bank:Savings', 'Cash',
 | 
				
			||||||
 | 
					            'Investment:Commodities', 'Investment:Stocks']),
 | 
				
			||||||
    ('Assets', ['Bank:CD', 'Bank:Checking', 'Bank:Savings', 'Cash',
 | 
					    ('Assets', ['Bank:CD', 'Bank:Checking', 'Bank:Savings', 'Cash',
 | 
				
			||||||
                'Investment:Commodities', 'Investment:Stocks']),
 | 
					                'Investment:Commodities', 'Investment:Stocks']),
 | 
				
			||||||
    ('Assets:Bank', ['CD', 'Checking', 'Savings']),
 | 
					    ('Assets:Bank', ['CD', 'Checking', 'Savings']),
 | 
				
			||||||
| 
						 | 
					@ -454,7 +456,7 @@ def test_iter_accounts_by_classification(asset_hierarchy, arg, expect_subaccts):
 | 
				
			||||||
    ('Unused classification', []),
 | 
					    ('Unused classification', []),
 | 
				
			||||||
])
 | 
					])
 | 
				
			||||||
def test_iter_accounts(asset_hierarchy, arg, expect_subaccts):
 | 
					def test_iter_accounts(asset_hierarchy, arg, expect_subaccts):
 | 
				
			||||||
    if arg.startswith('Assets'):
 | 
					    if arg and arg.startswith('Assets'):
 | 
				
			||||||
        prefix = arg
 | 
					        prefix = arg
 | 
				
			||||||
    else:
 | 
					    else:
 | 
				
			||||||
        prefix = 'Assets'
 | 
					        prefix = 'Assets'
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue