test_csv2mentor.py 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. '''Created Sep 9, 2023 deeejas'''
  2. import unittest
  3. import os
  4. from pymt940 import (PaymentsProcessorBtrl, private, utils, languages)
  5. from jinja2 import (Environment, PackageLoader)
  6. import pandas as pd
  7. home = os.path.expanduser('~')
  8. downloads_dir = os.path.join(home, 'Downloads', 'mentor', 'import', 'MZK')
  9. currency = 'ron'
  10. # currency = 'eur'
  11. # currency = 'usd'
  12. # currency = 'huf'
  13. acc_currency = 'accountron'
  14. # acc_currency = 'accounteur'
  15. # acc_currency = 'accountusd'
  16. # acc_currency = 'accounthuf'
  17. class CsvTest(unittest.TestCase):
  18. templates = Environment(loader=PackageLoader('pymt940', 'templates'))
  19. body_template = 'body_incomes.txt'
  20. # body_template = 'body_payments.txt'
  21. template = templates.get_template(body_template)
  22. processor = PaymentsProcessorBtrl(os.path.join(downloads_dir, private.MZK[currency]), private.MZK['name'],
  23. account_name=private.MZK[acc_currency]['name'],
  24. account_number=private.MZK[acc_currency]['number'],
  25. currency=private.MZK[acc_currency]['currency'],
  26. account_location=private.MZK['location'],
  27. account_agency=private.MZK['agency'],
  28. account_symbol=private.MZK['symbol'])
  29. df = pd.read_csv('../csv/RO26BTRL01301202N63584XX.csv', skiprows=14, keep_default_na=False).astype({'Balance': 'object'})
  30. def test_df(self):
  31. # print(df['Description'])
  32. desc = [d for d in self.df['Description']]
  33. text = desc[2]
  34. first_semicolon_index_from_end = text.rfind(';')
  35. second_semicolon_index_from_end = text.rfind(';', 0, first_semicolon_index_from_end)
  36. third_semicolon_index_from_end = text.rfind(';', 0, second_semicolon_index_from_end)
  37. self.df['Name'] = self.df['Description'].apply(utils.re_check)
  38. print(self.df['Name'])
  39. def test_process_income(self):
  40. df = self.processor.process_income_data(lang=languages.LANG.EN)
  41. print(df['symbols'], df['Name'], df['Amount'])
  42. data = self.processor.to_dict(kind='TotalIncasari', month_back=1,
  43. std_client='MOZAIK CONSULTING SRL', acc_symbol=411.01)
  44. output = self.template.render(data)
  45. print(output)
  46. def test_process_payment(self):
  47. df = self.processor.process_payment_data(lang=languages.LANG.EN)
  48. # print(df['symbols'], df['Name'], df['Amount'], df['types'])
  49. data = self.processor.to_dict(kind='TotalPlati', month_back=1,
  50. std_client='MOZAIK CONSULTING SRL', acc_symbol=401)
  51. output = self.template.render(data)
  52. print(output)
  53. def test_mentor_names(self):
  54. df_dict = utils.get_partners(self.processor.partner_data)
  55. fiscal_codes = df_dict['CodFiscal']
  56. mentor_names = df_dict['Denumire']
  57. print(mentor_names)
  58. if __name__ == "__main__":
  59. # import sys;sys.argv = ['', 'Test.testName']
  60. unittest.main()