将NetSuite连接到数据库连接器以来回传输信息
netsuite-db-connector的Python项目详细描述
NetSuite数据库连接器
Warning:该项目正在积极开发中,尚未达到生产级别。如果你想了解更多,请发邮件给作者
将NetSuite连接到数据库以来回传输信息。在
安装
此项目需要Python 3+。在
- 在
下载并使用此项目(复制到您的项目中,等等)。在
在 - 在
从pip安装它。在
在$ pip install netsuite-db-connector
使用
要使用此连接器,您需要通过基于令牌的身份验证(TBA)连接到NetSuite帐户。在
首先,使用环境变量设置TBA凭据。在
^{pr2}$下面是示例用法。在
importosimportsqlite3fromnetsuitesdkimportNetSuiteConnectionfromnetsuite_db_connectorimportNetSuiteExtractConnector,NetSuiteLoadConnectordefns_connect():NS_ACCOUNT=os.getenv('NS_ACCOUNT')NS_CONSUMER_KEY=os.getenv('NS_CONSUMER_KEY')NS_CONSUMER_SECRET=os.getenv('NS_CONSUMER_SECRET')NS_TOKEN_KEY=os.getenv('NS_TOKEN_KEY')NS_TOKEN_SECRET=os.getenv('NS_TOKEN_SECRET')nc=NetSuiteConnection(account=NS_ACCOUNT,consumer_key=NS_CONSUMER_KEY,consumer_secret=NS_CONSUMER_SECRET,token_key=NS_TOKEN_KEY,token_secret=NS_TOKEN_SECRET)returnncns=ns_connect()dbconn=sqlite3.connect('/tmp/ns.db',detect_types=sqlite3.PARSE_DECLTYPES|sqlite3.PARSE_COLNAMES)x=NetSuiteExtractConnector(ns=ns,dbconn=dbconn)x.create_tables()x.extract_currencies()x.extract_accounts()x.extract_departments()x.extract_locations()x.extract_vendors()x.extract_classifications()y=NetSuiteLoadConnector(ns=ns,dbconn=dbconn)y.create_tables()# do some transformations and populated vendor bills related load tablesforvendor_bill_external_idiny.get_vendor_bill_external_ids():internal_id=y.load_vendor_bill(vendor_bill_external_id=vendor_bill_external_id)print(f'posted vendor_bill_id {vendor_bill_external_id} for which NS returned {internal_id}')
贡献
要对这个项目做出贡献,请遵循以下步骤
- 派生并克隆存储库。在
- 运行
pip install -r requirements.txt
- 安装pylint预提交挂钩
- 创建文件
.git/hooks/pre-commit
- 复制并粘贴文件中的以下行-
#!/usr/bin/env bash git-pylint-commit-hook
在
- 创建文件
- 进行必要的更改
- 运行单元测试以确保一切正常
单元测试
要运行单元测试,请按以下方式运行pytest:
python -m pytest test/unit
你应该看到这样的画面:
...
集成测试
要运行单元测试,您需要连接到一个真正的NetSuite帐户。在运行集成测试之前,请设置以下环境变量:
^{pr2}$代码覆盖率
要获取代码覆盖率报告,请运行以下命令:
python-mpytest--cov=netsuite_db_connector<snippedoutput>
要获取html报告,请运行以下命令:
python-mpytest--cov=netsuite_db_connector--cov-reporthtml:cov_html
我们想保持95%以上的代码覆盖率这个项目在任何时候。在
许可证
这个项目是在MIT许可下授权的-请参阅LICENSE文件了解详细信息
- 项目
标签: