reconciler: Handle whitespace-only Citizen Bank transaction description
This commit is contained in:
		
							parent
							
								
									e21142f0ba
								
							
						
					
					
						commit
						78407779d6
					
				
					 3 changed files with 27 additions and 5 deletions
				
			
		|  | @ -414,11 +414,12 @@ def first_word_exact_match(a: str, b: str) -> float: | |||
|     is useful and the rest is garbage. | ||||
| 
 | ||||
|     """ | ||||
|     if len(a) == 0 or len(b) == 0: | ||||
|     a_words, b_words = a.split(), b.split() | ||||
|     if len(a_words) == 0 or len(b_words) == 0: | ||||
|         return 0.0 | ||||
|     first_a = a.split()[0].strip() | ||||
|     first_b = b.split()[0].strip() | ||||
|     if first_a.casefold() == first_b.casefold(): | ||||
|     first_a = a_words[0].strip().casefold() | ||||
|     first_b = b_words[0].strip().casefold() | ||||
|     if first_a == first_b: | ||||
|         return min(1.0, 0.2 * len(first_a)) | ||||
|     else: | ||||
|         return 0.0 | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| [metadata] | ||||
| name = conservancy_beancount | ||||
| version = 1.22.0 | ||||
| version = 1.23.0 | ||||
| author = Software Freedom Conservancy | ||||
| author_email = info@sfconservancy.org | ||||
| description = Plugin, library, and reports for reading Conservancy’s books | ||||
|  |  | |||
|  | @ -459,3 +459,24 @@ month_test_data = [ | |||
| @pytest.mark.parametrize('input_dates,rounded_dates', month_test_data) | ||||
| def test_rounds_to_full_month(input_dates, rounded_dates): | ||||
|     assert round_to_month(*input_dates) == rounded_dates | ||||
| 
 | ||||
| 
 | ||||
| def test_handles_payee_whitespace_only(): | ||||
|     """Sometimes Citizen Bank statements have a single space in the transaction desc.""" | ||||
|     statement = [ | ||||
|         { | ||||
|             'date': datetime.date(2022, 1, 1), | ||||
|             'amount': decimal.Decimal('10.00'), | ||||
|             'payee': ' ', | ||||
|             'check_id': '', | ||||
|         } | ||||
|     ] | ||||
|     books = [ | ||||
|         { | ||||
|             'date': datetime.date(2022, 1, 1), | ||||
|             'amount': decimal.Decimal('10.00'), | ||||
|             'payee': ' ', | ||||
|             'check_id': '', | ||||
|         } | ||||
|     ] | ||||
|     assert match_statement_and_books(statement, books) | ||||
|  |  | |||
		Loading…
	
	Add table
		
		Reference in a new issue