ApiLogicServer 15.0.61__py3-none-any.whl → 15.0.65__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- api_logic_server_cli/api_logic_server.py +4 -3
- api_logic_server_cli/api_logic_server_info.yaml +2 -2
- api_logic_server_cli/cli.py +2 -2
- api_logic_server_cli/genai/{genai_admin_app.py → genai_react_app.py} +10 -2
- api_logic_server_cli/prototypes/base/.github/.copilot-instructions.md +297 -1
- api_logic_server_cli/prototypes/base/docs/training/logic_bank_api.prompt +27 -0
- api_logic_server_cli/prototypes/base/logic/logic_discovery/use_case.py +5 -1
- api_logic_server_cli/prototypes/base/test/readme_test.md +395 -0
- api_logic_server_cli/prototypes/basic_demo/docs/models-not-code.png +0 -0
- api_logic_server_cli/prototypes/basic_demo/docs/runtime engines.png +0 -0
- api_logic_server_cli/prototypes/basic_demo/logic/procedural/credit_service.py +204 -0
- api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md +1 -12
- api_logic_server_cli/prototypes/manager/system/Manager_workspace.code-workspace +2 -2
- api_logic_server_cli/prototypes/nw/test/readme_test_nw.md +224 -0
- {apilogicserver-15.0.61.dist-info → apilogicserver-15.0.65.dist-info}/METADATA +1 -1
- {apilogicserver-15.0.61.dist-info → apilogicserver-15.0.65.dist-info}/RECORD +20 -16
- api_logic_server_cli/prototypes/nw/test/readme_test.md +0 -13
- {apilogicserver-15.0.61.dist-info → apilogicserver-15.0.65.dist-info}/WHEEL +0 -0
- {apilogicserver-15.0.61.dist-info → apilogicserver-15.0.65.dist-info}/entry_points.txt +0 -0
- {apilogicserver-15.0.61.dist-info → apilogicserver-15.0.65.dist-info}/licenses/LICENSE +0 -0
- {apilogicserver-15.0.61.dist-info → apilogicserver-15.0.65.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
# API Logic Server Testing Guide
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This directory contains comprehensive tests for API Logic Server projects, designed to validate business logic rules, API endpoints, security, and data integrity. The testing framework emphasizes **business logic validation** through declarative rules rather than just basic CRUD operations.
|
|
6
|
+
|
|
7
|
+
## 🎯 What Gets Tested
|
|
8
|
+
|
|
9
|
+
- **Business Logic Rules**: Declarative rules for sums, formulas, constraints, and events
|
|
10
|
+
- **API Endpoints**: REST API functionality and JSON:API compliance
|
|
11
|
+
- **Security**: Authentication, authorization, and role-based access control
|
|
12
|
+
- **Data Integrity**: Database constraints, cascading updates, and transactions
|
|
13
|
+
- **Integration**: Logic engine, database, and API layer integration
|
|
14
|
+
|
|
15
|
+
## 📁 Test Structure
|
|
16
|
+
|
|
17
|
+
```
|
|
18
|
+
test/
|
|
19
|
+
├── readme_test.md # This guide
|
|
20
|
+
├── api_logic_server_behave/ # Primary BDD testing framework
|
|
21
|
+
│ ├── behave_run.py # Main test runner
|
|
22
|
+
│ ├── behave_logic_report.py # Report generator
|
|
23
|
+
│ ├── features/ # Gherkin feature files
|
|
24
|
+
│ │ ├── place_order.feature # Core business logic scenarios
|
|
25
|
+
│ │ ├── salary_change.feature # Employee management tests
|
|
26
|
+
│ │ ├── authorization.feature # Security tests
|
|
27
|
+
│ │ └── steps/ # Python step implementations
|
|
28
|
+
│ ├── logs/ # Test execution logs
|
|
29
|
+
│ └── reports/ # Generated test reports
|
|
30
|
+
└── basic/ # Simple server tests
|
|
31
|
+
├── server_test.py # Basic API functionality tests
|
|
32
|
+
└── results/ # Basic test results
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## 🚀 Running Tests
|
|
36
|
+
|
|
37
|
+
### Prerequisites
|
|
38
|
+
1. **Start API Logic Server**: `python api_logic_server_run.py` or press F5
|
|
39
|
+
2. **Install behave**: `pip install behave` (if not already installed)
|
|
40
|
+
3. **Database State**: Tests restore data automatically, but if tests fail mid-execution, restore `database/db.sqlite` from backup
|
|
41
|
+
|
|
42
|
+
### Primary Testing Method: Behave (BDD)
|
|
43
|
+
|
|
44
|
+
```bash
|
|
45
|
+
# From project root
|
|
46
|
+
cd test/api_logic_server_behave
|
|
47
|
+
python behave_run.py
|
|
48
|
+
|
|
49
|
+
# Or in VS Code
|
|
50
|
+
# Use "Behave Run" configuration (F5)
|
|
51
|
+
# In Debug Console, select "Behave Run" from dropdown (not server log)
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Alternative: Basic Server Tests
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
# From project root
|
|
58
|
+
cd test/basic
|
|
59
|
+
python server_test.py go
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**Note**: Basic tests require `SECURITY_ENABLED = False` in `config/config.py`
|
|
63
|
+
|
|
64
|
+
## 📝 Test Scenarios
|
|
65
|
+
|
|
66
|
+
### Core Business Logic (`place_order.feature`)
|
|
67
|
+
|
|
68
|
+
Tests the fundamental business rules of the sample Northwind application:
|
|
69
|
+
|
|
70
|
+
- **Order State Management**: Ready/Not Ready flag changes
|
|
71
|
+
- **Credit Checking**: Validates customer credit limits
|
|
72
|
+
- **Balance Calculations**: Automatic customer balance adjustments
|
|
73
|
+
- **Inventory Management**: Product reordering and stock updates
|
|
74
|
+
- **Notifications**: Email alerts to sales representatives
|
|
75
|
+
- **Integration**: Kafka message publishing
|
|
76
|
+
- **Constraint Validation**: Prevents shipping empty orders
|
|
77
|
+
|
|
78
|
+
### Employee Management (`salary_change.feature`)
|
|
79
|
+
|
|
80
|
+
- **Audit Trail**: Automatic logging of salary changes
|
|
81
|
+
- **Derived Attributes**: ProperSalary calculations
|
|
82
|
+
- **Business Rules**: Minimum raise requirements
|
|
83
|
+
|
|
84
|
+
### Security (`authorization.feature`)
|
|
85
|
+
|
|
86
|
+
- **Authentication**: Login/logout functionality
|
|
87
|
+
- **Role-Based Access**: Permission validation
|
|
88
|
+
- **Data Filtering**: Row-level security
|
|
89
|
+
|
|
90
|
+
## 🧪 Test Data
|
|
91
|
+
|
|
92
|
+
Tests use consistent, known data for predictable results:
|
|
93
|
+
|
|
94
|
+
| Entity | ID/Key | Key Attributes | Purpose |
|
|
95
|
+
|--------|--------|----------------|---------|
|
|
96
|
+
| Customer | ALFKI | Balance: 2102, CreditLimit varies | Credit checking, balance calculations |
|
|
97
|
+
| Order | 10643 | Amount: 1086 | Order processing, shipping logic |
|
|
98
|
+
| Employee | 5 (Buchanan) | Salary: 95k | Salary management, audit testing |
|
|
99
|
+
|
|
100
|
+
## 🔧 For Developers
|
|
101
|
+
|
|
102
|
+
### Adding New Tests
|
|
103
|
+
|
|
104
|
+
1. **Create Feature File**: Add `.feature` file in `features/` using Gherkin syntax
|
|
105
|
+
2. **Implement Steps**: Create corresponding `.py` file in `features/steps/`
|
|
106
|
+
3. **Use Test Utilities**: Import `test_utils.py` for common functions
|
|
107
|
+
4. **Follow Patterns**: Reference existing tests for authentication, logging, and assertions
|
|
108
|
+
|
|
109
|
+
### Example Feature Structure
|
|
110
|
+
|
|
111
|
+
```gherkin
|
|
112
|
+
Feature: My New Feature
|
|
113
|
+
|
|
114
|
+
Scenario: Test Scenario Name
|
|
115
|
+
Given Initial condition
|
|
116
|
+
When Action is performed
|
|
117
|
+
Then Expected result occurs
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
### Example Step Implementation
|
|
121
|
+
|
|
122
|
+
```python
|
|
123
|
+
# features/steps/my_feature.py
|
|
124
|
+
from behave import *
|
|
125
|
+
import test_utils
|
|
126
|
+
import requests
|
|
127
|
+
import json
|
|
128
|
+
|
|
129
|
+
@given('Initial condition')
|
|
130
|
+
def step_impl(context):
|
|
131
|
+
# Setup code
|
|
132
|
+
pass
|
|
133
|
+
|
|
134
|
+
@when('Action is performed')
|
|
135
|
+
def step_impl(context):
|
|
136
|
+
# Action code
|
|
137
|
+
header = test_utils.login() # Get auth header
|
|
138
|
+
# Make API calls
|
|
139
|
+
pass
|
|
140
|
+
|
|
141
|
+
@then('Expected result occurs')
|
|
142
|
+
def step_impl(context):
|
|
143
|
+
# Assertion code
|
|
144
|
+
pass
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## 🤖 For GitHub Copilot
|
|
148
|
+
|
|
149
|
+
When generating tests for API Logic Server projects:
|
|
150
|
+
|
|
151
|
+
### Key Patterns to Follow
|
|
152
|
+
|
|
153
|
+
1. **Focus on Business Logic**: Test declarative rules, not just CRUD operations
|
|
154
|
+
2. **Use Behave Framework**: Create `.feature` files with Gherkin syntax
|
|
155
|
+
3. **Test Authentication**: Include login/security in API calls
|
|
156
|
+
4. **Verify Rule Execution**: Check that LogicBank rules fire correctly
|
|
157
|
+
5. **Test Constraints**: Verify business rule violations are caught
|
|
158
|
+
6. **Check Cascading Updates**: Ensure changes propagate correctly
|
|
159
|
+
|
|
160
|
+
### Common Test Utilities
|
|
161
|
+
|
|
162
|
+
```python
|
|
163
|
+
import test_utils
|
|
164
|
+
|
|
165
|
+
# Authentication
|
|
166
|
+
header = test_utils.login(user='aneu') # Returns auth header
|
|
167
|
+
|
|
168
|
+
# Logging (appears in both console and log files)
|
|
169
|
+
test_utils.prt("Test message", "scenario_name")
|
|
170
|
+
|
|
171
|
+
# API calls with auth
|
|
172
|
+
r = requests.get(url=api_url, headers=header)
|
|
173
|
+
r = requests.patch(url=api_url, json=data, headers=header)
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Security Considerations
|
|
177
|
+
|
|
178
|
+
- Tests can run with or without security enabled
|
|
179
|
+
- Use `test_utils.login()` for authenticated requests
|
|
180
|
+
- Handle both SQL and Keycloak authentication providers
|
|
181
|
+
- Check `Config.SECURITY_ENABLED` flag
|
|
182
|
+
|
|
183
|
+
### Business Logic Testing Patterns
|
|
184
|
+
|
|
185
|
+
1. **Setup**: Get initial state (e.g., customer balance)
|
|
186
|
+
2. **Action**: Perform business operation (e.g., place order)
|
|
187
|
+
3. **Verify**: Check rule execution results (e.g., balance updated, constraints enforced)
|
|
188
|
+
4. **Cleanup**: Data is automatically restored
|
|
189
|
+
|
|
190
|
+
### Sample Rule Testing
|
|
191
|
+
|
|
192
|
+
```python
|
|
193
|
+
# Test a sum rule: Customer.Balance = sum(Order.AmountTotal where not shipped)
|
|
194
|
+
def test_balance_calculation():
|
|
195
|
+
# 1. Get initial customer state
|
|
196
|
+
customer_before = get_customer('ALFKI')
|
|
197
|
+
|
|
198
|
+
# 2. Create/modify order
|
|
199
|
+
create_order_for_customer('ALFKI', amount=100)
|
|
200
|
+
|
|
201
|
+
# 3. Verify balance updated automatically
|
|
202
|
+
customer_after = get_customer('ALFKI')
|
|
203
|
+
assert customer_after.Balance == customer_before.Balance + 100
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## 📊 Test Reports
|
|
207
|
+
|
|
208
|
+
- **Logic Reports**: Generated in `reports/` showing which rules executed
|
|
209
|
+
- **Behave Output**: Standard BDD test results
|
|
210
|
+
- **Logic Logs**: Detailed rule execution in `logs/scenario_logic_logs/`
|
|
211
|
+
|
|
212
|
+
## 🔍 Debugging Tests
|
|
213
|
+
|
|
214
|
+
- **Check Logs**: Review `logs/scenario_logic_logs/<scenario>.log`
|
|
215
|
+
- **Use Debug Console**: In VS Code, select "Behave Run" from dropdown
|
|
216
|
+
- **Server Logs**: Check server console for API errors
|
|
217
|
+
- **Database State**: Restore `database/db.sqlite` if tests fail mid-execution
|
|
218
|
+
|
|
219
|
+
## ⚠️ Important Notes
|
|
220
|
+
|
|
221
|
+
- **Data Restoration**: Tests automatically restore data, but partial failures may require manual database restore
|
|
222
|
+
- **Security Mode**: Behave tests work with security enabled; basic tests require security disabled
|
|
223
|
+
- **Rule Engine**: Tests specifically validate LogicBank rule execution, not just API responses
|
|
224
|
+
- **Performance**: Tests include logic optimization verification (rule pruning, etc.)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
api_logic_server_cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
api_logic_server_cli/api_logic_server.py,sha256=
|
|
3
|
-
api_logic_server_cli/api_logic_server_info.yaml,sha256=
|
|
4
|
-
api_logic_server_cli/cli.py,sha256=
|
|
2
|
+
api_logic_server_cli/api_logic_server.py,sha256=E8xyAVmtwE7j0jd6OfToArNP2RXZByWyxtg87DuDhN0,104094
|
|
3
|
+
api_logic_server_cli/api_logic_server_info.yaml,sha256=codSmeCvbx6BYgXBMYDFYrKxch-aImth3kxpwYOCHoo,130
|
|
4
|
+
api_logic_server_cli/cli.py,sha256=tlFXb3c9X1RzJttSNjVW-6L5gwGgC2MK7HGWFZXA-QQ,87355
|
|
5
5
|
api_logic_server_cli/cli_args_base.py,sha256=7cVM6BeizwttYAwUu1FUyuLuvWufvgt0TFeA8FI6tu0,3304
|
|
6
6
|
api_logic_server_cli/cli_args_project.py,sha256=I5no_fGRV_ZsK3SuttVDAaQYI4Q5zCjx6LojGkM024w,4645
|
|
7
7
|
api_logic_server_cli/extended_builder.py,sha256=EhtXGAt_RrDR2tCtgvc2U82we7fr-F6pP-e6HS6dQWQ,13867
|
|
@@ -375,11 +375,11 @@ api_logic_server_cli/fragments/ui_basic_web_app_runZZ.py,sha256=UllBIkKHlUE3nyDE
|
|
|
375
375
|
api_logic_server_cli/genai/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
376
376
|
api_logic_server_cli/genai/client.py,sha256=36gyz-dqxj4dJj1SGtO9NZsy9-cfnf4d7uahHimwqHk,772
|
|
377
377
|
api_logic_server_cli/genai/genai.py,sha256=rt4XW_xmo-D5fLD8DQBHMjrU7Teflw43S8lR-tJd4KU,47014
|
|
378
|
-
api_logic_server_cli/genai/genai_admin_app.py,sha256=PxovwtSmBrGazmH_c2lBzzBnwnR0yEJxr3QJfbyfEVE,12176
|
|
379
378
|
api_logic_server_cli/genai/genai_fatal_excp.py,sha256=1FmDVcXVRqmG0JMVZ7l4KqMOdpff3KGZ2LPAGtw304Q,179
|
|
380
379
|
api_logic_server_cli/genai/genai_graphics.py,sha256=9ao0os6rUKY5u2caeLtgyDsNEuVQXq4KcKV575fNC58,20610
|
|
381
380
|
api_logic_server_cli/genai/genai_logic_builder.py,sha256=u_89UtrALIfcMtW6p0SZ78lCmwRqerA5igyY2hDvjlk,26150
|
|
382
381
|
api_logic_server_cli/genai/genai_mcp.py,sha256=Q2fVXwoIetYTSHuNHTke_ITsb-nu_L4kusPpTAkze1Q,1434
|
|
382
|
+
api_logic_server_cli/genai/genai_react_app.py,sha256=JlCSCCS370OQLSLnzy28wOiQHTUbmWSgtgoqaz2Hed0,12619
|
|
383
383
|
api_logic_server_cli/genai/genai_svcs.py,sha256=ML8Ox9ZWAedELUnGHFoJ91VnpIM4-5-RyC2WZu8vJGg,50668
|
|
384
384
|
api_logic_server_cli/genai/genai_utils.py,sha256=DTlWTnW5_2pzX4q1VG1tWqoZPVObDHR97SVe0z8Z3rs,17102
|
|
385
385
|
api_logic_server_cli/genai/json2rules.py,sha256=ykoxxgZgqllzt8Ud06S-R_3QtumxXfmF5ksYC0Hh2Sk,2645
|
|
@@ -423,7 +423,7 @@ api_logic_server_cli/prototypes/base/.devcontainer-option/For_VSCode.dockerfile,
|
|
|
423
423
|
api_logic_server_cli/prototypes/base/.devcontainer-option/devcontainer.json,sha256=tk-mGd4XdmbpKUqUeGmcPMzX3RDc6am9-de8c-rFmSo,2361
|
|
424
424
|
api_logic_server_cli/prototypes/base/.devcontainer-option/readme.md,sha256=-sSneMDne1fqEoox2hXUGmoO8ewgi34y7lJwGTidSpY,104
|
|
425
425
|
api_logic_server_cli/prototypes/base/.devcontainer-option/setup.sh,sha256=pOvGjZ7jgRQzFkD93mNICmcC2y66Dexrq4bCnSSVwtU,310
|
|
426
|
-
api_logic_server_cli/prototypes/base/.github/.copilot-instructions.md,sha256=
|
|
426
|
+
api_logic_server_cli/prototypes/base/.github/.copilot-instructions.md,sha256=nSsVX7b1UzVMJ3EkxWBiQ24EbI_FgrrPvbP74Mj6eN0,23645
|
|
427
427
|
api_logic_server_cli/prototypes/base/.idea/runConfigurations/ApiLogicServer.xml,sha256=eFzhe9NH-VNjcPWbPsRQy5o-MugJR9IWklA1Fo8wtYg,1127
|
|
428
428
|
api_logic_server_cli/prototypes/base/.idea/runConfigurations/Report_Behave_Logic.xml,sha256=I3jlEf-TPzc-1NY843v6AcQIQ8QJD3z9KvxTYSZWMtY,1306
|
|
429
429
|
api_logic_server_cli/prototypes/base/.idea/runConfigurations/Run_Behave.xml,sha256=CTzF0P4w7o4FzOi-eSpru0HczSEGtJsKqkQ7VWRyxPc,1196
|
|
@@ -529,7 +529,7 @@ api_logic_server_cli/prototypes/base/docs/logic_suggestions/readme_logic_suggest
|
|
|
529
529
|
api_logic_server_cli/prototypes/base/docs/training/admin_app_1_context.prompt.md,sha256=IpBkTI7BLdF7885Q0k5CTu_8Gunl5FdqH_t6fHVjAq0,1740
|
|
530
530
|
api_logic_server_cli/prototypes/base/docs/training/admin_app_2_functionality.prompt.md,sha256=iWMoAkETeQjWWPrNj1AcI4HFGLlgS0-HP9oBYXhdTNI,1705
|
|
531
531
|
api_logic_server_cli/prototypes/base/docs/training/admin_app_3_architecture.prompt.md,sha256=5KtRBihPbxTQEvLJ51w104Z0HfDGFEmQc3ysek6EsXA,925
|
|
532
|
-
api_logic_server_cli/prototypes/base/docs/training/logic_bank_api.prompt,sha256=
|
|
532
|
+
api_logic_server_cli/prototypes/base/docs/training/logic_bank_api.prompt,sha256=RGoo14PUyVu3YG9dMDbwCVKLQ-pPgopwQ5Yu-gwzesg,16066
|
|
533
533
|
api_logic_server_cli/prototypes/base/docs/training/logic_example.py,sha256=yAot6uHy1gu94ufeYDx3f0iJ1_czsDywSAdm_yu4E2o,1325
|
|
534
534
|
api_logic_server_cli/prototypes/base/docs/training/react_map.prompt.md,sha256=8B9bDjk4sL1t5LzYLKjuf78UPDmhj9assRZTIOvlwN4,891
|
|
535
535
|
api_logic_server_cli/prototypes/base/docs/training/react_tree.prompt.md,sha256=Eoi4Q3H4x-PQOjonUjQ1o6xkiFtcEA_hg8tuFP-qk80,652
|
|
@@ -556,7 +556,7 @@ api_logic_server_cli/prototypes/base/logic/load_verify_rules.py,sha256=dYEb-UxqQ
|
|
|
556
556
|
api_logic_server_cli/prototypes/base/logic/readme_logic.md,sha256=teXyg9-7b-1OAj_kLC7gQ37zNllTRFnovdq2LGsyg6E,10178
|
|
557
557
|
api_logic_server_cli/prototypes/base/logic/logic_discovery/auto_discovery.py,sha256=m97W6DYi6ouTDuFCiU1rPq1UqzJuNnVePyOeLU33D1s,2645
|
|
558
558
|
api_logic_server_cli/prototypes/base/logic/logic_discovery/readme_logic_discovery.md,sha256=SRg3Hrq3vCjqtAL1XijcbPGvfLLgkqsODLtIKfZUEaI,396
|
|
559
|
-
api_logic_server_cli/prototypes/base/logic/logic_discovery/use_case.py,sha256=
|
|
559
|
+
api_logic_server_cli/prototypes/base/logic/logic_discovery/use_case.py,sha256=M3TQZwBaAtgEyNjP_Hl8s35x_zEpzpnIrtxmD7sL1NY,916
|
|
560
560
|
api_logic_server_cli/prototypes/base/security/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
561
561
|
api_logic_server_cli/prototypes/base/security/declare_security.py,sha256=sWi-M7E-dIhvC0hmdCXnTRjHAR5eWVKCYIDCoblISm4,2281
|
|
562
562
|
api_logic_server_cli/prototypes/base/security/readme_security.md,sha256=G8krW3KHl_N-ksbEr3WFV3U2ODYhlFYOij73t-KV9jk,507
|
|
@@ -570,6 +570,7 @@ api_logic_server_cli/prototypes/base/security/system/authentication.py,sha256=pv
|
|
|
570
570
|
api_logic_server_cli/prototypes/base/security/system/authorization.py,sha256=hlfuSBzM4YMMIgxJuev9Ro2bqGwgIsLT7K-pjwcrM64,21399
|
|
571
571
|
api_logic_server_cli/prototypes/base/security/system/custom_swagger.json,sha256=rq-W5pnAWKSms20TPqUw2rsXq8OJgoX7Cs1eV8xnbcU,1705
|
|
572
572
|
api_logic_server_cli/prototypes/base/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
573
|
+
api_logic_server_cli/prototypes/base/test/readme_test.md,sha256=NmyUhSu4DngyBSvoH7SacTrr5xHMywEePeHqaLdVdmc,14800
|
|
573
574
|
api_logic_server_cli/prototypes/base/test/api_logic_server_behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
574
575
|
api_logic_server_cli/prototypes/base/test/api_logic_server_behave/behave_logic_report.py,sha256=tXH_AmStMMgObNpxtJkcZ3vPcGldTTV3iUeukdqP3DE,9969
|
|
575
576
|
api_logic_server_cli/prototypes/base/test/api_logic_server_behave/behave_run.py,sha256=KvHQAlsyF2heBvoD6voAkhIVJXS1AAKaHEcw77AsD3Q,2429
|
|
@@ -666,6 +667,8 @@ api_logic_server_cli/prototypes/basic_demo/customizations/ui/reference_react_app
|
|
|
666
667
|
api_logic_server_cli/prototypes/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/resourceLookup.js,sha256=nV_j3KpDeUpD8sPsGJeOqi6lUvcPbheJtLdqU5nENPs,4366
|
|
667
668
|
api_logic_server_cli/prototypes/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/resourceLookup.ts,sha256=FlsEiPVX_U-22glUGoscj3qcYdnfMJ_9Wa2Vi4CV2xs,4471
|
|
668
669
|
api_logic_server_cli/prototypes/basic_demo/customizations/ui/reference_react_app/src/rav4-jsonapi-client/styles.module.css,sha256=AuGbjqBQu2by4z5APJvQAWk44ocrdQ9lCopqYCJXCy0,154
|
|
670
|
+
api_logic_server_cli/prototypes/basic_demo/docs/models-not-code.png,sha256=XvndgzHphsAbpxfV1D5q8XvJfjK8NVHwDWj59HuQ1Ic,381811
|
|
671
|
+
api_logic_server_cli/prototypes/basic_demo/docs/runtime engines.png,sha256=l9OCqVXZuALVhPQEBERtZDFdqgqojixm66cIKSZyNj0,105414
|
|
669
672
|
api_logic_server_cli/prototypes/basic_demo/docs/system-creation-vibe.md,sha256=7ECJTc-BM6TwgBc3NM67a6LPXqBVY7RtRFepvhPjBko,4001
|
|
670
673
|
api_logic_server_cli/prototypes/basic_demo/iteration/api/api_discovery/order_b2b.py,sha256=hg9Bsz0_t-RjO9rFcW-YH3y26kq4IY5dd9FfVoYxB4w,3176
|
|
671
674
|
api_logic_server_cli/prototypes/basic_demo/iteration/database/db.sqlite,sha256=SvpzWZxWnwIqd25UhzL5crhtjEfF53MLj3lOB2cPK8M,24576
|
|
@@ -675,6 +678,7 @@ api_logic_server_cli/prototypes/basic_demo/iteration/integration/row_dict_maps/O
|
|
|
675
678
|
api_logic_server_cli/prototypes/basic_demo/iteration/logic/declare_logic.py,sha256=Jnqt0j2Yu8ev1Pi9T3rogumuGn2sR4Q4QyWeUIunG28,6501
|
|
676
679
|
api_logic_server_cli/prototypes/basic_demo/iteration/ui/admin/admin.yaml,sha256=uqxqYNMbKm4aCaTOy5CnlAtYccYM32-oQLVi5K6tfNI,3554
|
|
677
680
|
api_logic_server_cli/prototypes/basic_demo/logic/declarative-vs-procedural-comparison.html,sha256=GUzgmnWdT709M5mPJGyfF1ARzzz3y5guASDBWeG43PU,3915
|
|
681
|
+
api_logic_server_cli/prototypes/basic_demo/logic/procedural/credit_service.py,sha256=n_7YzxxssaxfuB8-nu_jPrQ-H6leAqKjJQRfOKcQwR4,7525
|
|
678
682
|
api_logic_server_cli/prototypes/basic_demo/logic/procedural/declarative-vs-procedural-comparison.md,sha256=lBUyilpqRPrL-d4yp55gRyRLaeYNzbArktMOaTD5IUw,12193
|
|
679
683
|
api_logic_server_cli/prototypes/basic_demo/logic/procedural/declarative-vs-procedural-comparison.png,sha256=4jZRhM4raP95KOhbUEzlDRT-K9olwbVI6PVMZKi8j84,904211
|
|
680
684
|
api_logic_server_cli/prototypes/basic_demo/ui/my-react-app/README.md,sha256=h7ePuwOqn3jv7YkjM4ruaP5rpYBmr_4Q3NChhb8pVJ4,452
|
|
@@ -789,7 +793,7 @@ api_logic_server_cli/prototypes/genai_demo/ui/admin/admin.yaml,sha256=vMpr6to6g-
|
|
|
789
793
|
api_logic_server_cli/prototypes/manager/.gitignore,sha256=xfAjNQHokbo6GuN1ghx-eml8tQIzwUczLC_YVzElndI,195
|
|
790
794
|
api_logic_server_cli/prototypes/manager/README.md,sha256=GDYEPrigwcXQfhm924-NvJeVauvS9bxogY9euNie7yI,38957
|
|
791
795
|
api_logic_server_cli/prototypes/manager/settings.txt,sha256=_jjL30jomIMxG21edDfrXYRT9Zfgr_0EdUWvcEUOnFQ,368
|
|
792
|
-
api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md,sha256=
|
|
796
|
+
api_logic_server_cli/prototypes/manager/.github/.copilot-instructions.md,sha256=OY8i7AVF2k-q83xxFltZtaCnOo7cycKOyWx3xoRcgYY,2545
|
|
793
797
|
api_logic_server_cli/prototypes/manager/.vscode/.copilot-instructions.md,sha256=Gvx2SYFMhMtoqdbw3WSJ1-40kZAy9EUfQ0jIaHc0aYY,1923
|
|
794
798
|
api_logic_server_cli/prototypes/manager/.vscode/ApiLogicServer.code-workspace,sha256=yC_pOIZN5o5Qiw3t2kBPsiO01Mgp3VEbAizYx1T3aPI,282
|
|
795
799
|
api_logic_server_cli/prototypes/manager/.vscode/launch.json,sha256=alh_fiuqMjY-uIk4ghfwyMs3y-U2dYr1W6rS9ncpNEY,33491
|
|
@@ -802,7 +806,7 @@ api_logic_server_cli/prototypes/manager/samples/prompts/add_email.prompt,sha256=
|
|
|
802
806
|
api_logic_server_cli/prototypes/manager/samples/prompts/elections.prompt,sha256=R7B0KFuuWTuH6YOTr_AEHHgnHE4spR_BUrlOl0TX-cE,80
|
|
803
807
|
api_logic_server_cli/prototypes/manager/samples/prompts/emp_dept.prompt,sha256=xbyhCyY7TUk7hoBKAkzRsZVBj1lP4hfXdSR4TQagXqM,109
|
|
804
808
|
api_logic_server_cli/prototypes/manager/samples/prompts/genai_demo.prompt,sha256=mhxJ5d4rALI45DNFkmBCH14YCl0FVuSyy1FgVTSBRrU,570
|
|
805
|
-
api_logic_server_cli/prototypes/manager/system/Manager_workspace.code-workspace,sha256=
|
|
809
|
+
api_logic_server_cli/prototypes/manager/system/Manager_workspace.code-workspace,sha256=e86OVoat_2mLTfUpDNuLpCd9gvUsYuW2K0a6f8mXcRs,289
|
|
806
810
|
api_logic_server_cli/prototypes/manager/system/readme_ssystem.md,sha256=52zXRh5KJ4GSRWyNLwzbXqKMDJmR7M6PhS71-DIUoBI,106
|
|
807
811
|
api_logic_server_cli/prototypes/manager/system/style-guide.yaml,sha256=JaP3NDE29k4_e9ELeLTZfnWf2L8VgS1X7hO8J_BNqJU,673
|
|
808
812
|
api_logic_server_cli/prototypes/manager/system/app_model_editor/.gitignore,sha256=07msA6EiXJT_unwoat2B8vI6ANcIn9E-ntgIpQZj7g0,477
|
|
@@ -1864,7 +1868,7 @@ api_logic_server_cli/prototypes/nw/logic/logic_discovery/simple_constraints.py,s
|
|
|
1864
1868
|
api_logic_server_cli/prototypes/nw/logic/logic_discovery/workflow_integration.pyZZ,sha256=XQacPVIKDKdYHgSaQ8IHp__DI2tZyNBr9qokEc6j0ws,2425
|
|
1865
1869
|
api_logic_server_cli/prototypes/nw/security/declare_security.py,sha256=SlfOikecm3MJ9lx34iplhbB_r8I9iHozw-cIdbv6RvQ,4456
|
|
1866
1870
|
api_logic_server_cli/prototypes/nw/test/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1867
|
-
api_logic_server_cli/prototypes/nw/test/
|
|
1871
|
+
api_logic_server_cli/prototypes/nw/test/readme_test_nw.md,sha256=cKSVl-PaDy1RHbrfMcBpRG7wvalc4luT_Ea_QMatDI8,7705
|
|
1868
1872
|
api_logic_server_cli/prototypes/nw/test/api_logic_server_behave/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
1869
1873
|
api_logic_server_cli/prototypes/nw/test/api_logic_server_behave/features/about.feature,sha256=RjzJm5PVu0WswkD-wiMqSh-w4fvUh_f259psGFtlIiU,187
|
|
1870
1874
|
api_logic_server_cli/prototypes/nw/test/api_logic_server_behave/features/api.feature,sha256=XQcltFcDvZzWuIMiodw7E7D2zxB9zSzcRVa-YvRWEgM,285
|
|
@@ -2265,9 +2269,9 @@ api_logic_server_cli/tools/mini_skel/database/system/SAFRSBaseX.py,sha256=p8C7AF
|
|
|
2265
2269
|
api_logic_server_cli/tools/mini_skel/database/system/TestDataBase.py,sha256=U02SYqThsbY5g3DX7XGaiMxjZBuOpzvtPS6RfI1WQFg,371
|
|
2266
2270
|
api_logic_server_cli/tools/mini_skel/logic/declare_logic.py,sha256=fTrlHyqMeZsw_TyEXFa1VlYBL7fzjZab5ONSXO7aApo,175
|
|
2267
2271
|
api_logic_server_cli/tools/mini_skel/logic/load_verify_rules.py,sha256=Rr5bySJpYCZmNPF2h-phcPJ53nAOPcT_ohZpCD93-a0,7530
|
|
2268
|
-
apilogicserver-15.0.
|
|
2269
|
-
apilogicserver-15.0.
|
|
2270
|
-
apilogicserver-15.0.
|
|
2271
|
-
apilogicserver-15.0.
|
|
2272
|
-
apilogicserver-15.0.
|
|
2273
|
-
apilogicserver-15.0.
|
|
2272
|
+
apilogicserver-15.0.65.dist-info/licenses/LICENSE,sha256=67BS7VC-Z8GpaR3wijngQJkHWV04qJrwQArVgn9ldoI,1485
|
|
2273
|
+
apilogicserver-15.0.65.dist-info/METADATA,sha256=j82Meg-mFvrp5evZdnKIBoLhkqaDVQIMJcejMvIJCgk,6653
|
|
2274
|
+
apilogicserver-15.0.65.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
2275
|
+
apilogicserver-15.0.65.dist-info/entry_points.txt,sha256=W9EVNvf09h8n6rJChmVj2gzxVQ6BXXZa2x3wri0lFGc,259
|
|
2276
|
+
apilogicserver-15.0.65.dist-info/top_level.txt,sha256=-r0AT_GEApleihg-jIh0OMvzzc0BO1RuhhOpE91H5qI,21
|
|
2277
|
+
apilogicserver-15.0.65.dist-info/RECORD,,
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
## Notes on Tests
|
|
2
|
-
|
|
3
|
-
These tests exercise API Server Logic.
|
|
4
|
-
|
|
5
|
-
They can be re-run. But, if they fail in the middle, be sure so replace `database/db.sqlite`.
|
|
6
|
-
|
|
7
|
-
Tests are designed to be run with Security.
|
|
8
|
-
|
|
9
|
-
The most typical way to run the tests:
|
|
10
|
-
|
|
11
|
-
1. Start API Logic Server
|
|
12
|
-
2. Run `Behave Run`
|
|
13
|
-
* Under VSCode, use of the Debug Console obscures the test summary. Use the combo box on the Debug Console to select Behave Run (instead of the server log).
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|