Skip to content
This repository was archived by the owner on Sep 24, 2025. It is now read-only.

Commit 11c08bc

Browse files
author
platipusica
committed
adding tests
1 parent d44e1e0 commit 11c08bc

23 files changed

+2527
-0
lines changed

tests/conftest.py

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
import pytest
2+
import os
3+
import datetime
4+
from jam.wsgi import create_application
5+
6+
@pytest.fixture(scope="session", autouse=True)
7+
def app(request):
8+
project_folder = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'project')
9+
return create_application(project_folder, load_task=True, testing=True)
10+
11+
@pytest.fixture(scope="session", autouse=True)
12+
def admin(app):
13+
return app.admin
14+
15+
@pytest.fixture(scope="session", autouse=True)
16+
def task(app):
17+
return app.task
18+
19+
@pytest.fixture(scope="module")
20+
def fields_item(task):
21+
date = datetime.datetime.strptime('2019-10-30', '%Y-%m-%d').date()
22+
date_string = '10/30/2019'
23+
date_time = datetime.datetime.strptime('2019-10-30 10:10:20', '%Y-%m-%d %H:%M:%S')
24+
datetime_string = '10/30/2019 10:10:20'
25+
26+
lookup3 = task.lookup3.copy()
27+
lookup3.empty()
28+
lookup3.open(open_empty=True)
29+
for i in range(2):
30+
val = i + 1
31+
lookup3.append()
32+
lookup3.text_field.value = 'lookup3_text' + str(i + 1)
33+
lookup3.integer_field.value = val;
34+
lookup3.currency_field.value = 100.001
35+
lookup3.date_field.value = date
36+
lookup3.datetime_field.value = date_time
37+
lookup3.boolean_field.value = bool(i)
38+
lookup3.lookup_list_field.value = val
39+
lookup3.keys_field.value = [val, val+1]
40+
lookup3.image_field.value = 'img%s.jpeg' % val
41+
lookup3.file_field.value = 'img_%s.jpg?img %s.jpg' % (val, val)
42+
lookup3.post()
43+
lookup3.apply()
44+
lookup3.first()
45+
assert lookup3.rec_count == 2
46+
47+
lookup2 = task.lookup2.copy()
48+
lookup2.empty()
49+
lookup2.open(open_empty=True)
50+
for i in range(2):
51+
lookup2.append()
52+
lookup2.name.value = 'lookup2_text' + str(i + 1)
53+
lookup3.rec_no = i
54+
lookup2.lookup3_text_field.value = lookup3.id.value
55+
lookup2.post()
56+
lookup2.apply()
57+
lookup2.open()
58+
59+
lookup1 = task.lookup1.copy()
60+
lookup1.empty()
61+
lookup1.open(open_empty=True)
62+
for i in range(2):
63+
lookup1.append()
64+
lookup1.name.value = 'lookup1_name' + str(i + 1)
65+
lookup2.rec_no = i
66+
lookup1.lookup_field2.value = lookup2.id.value
67+
lookup1.post()
68+
lookup1.apply()
69+
lookup1.last() #!!!!!!!!!!!!!
70+
assert lookup1.rec_count == 2
71+
72+
item = task.item.copy()
73+
item.empty()
74+
item.open()
75+
item.append()
76+
item.lookup1_name_field.value = lookup1.id.value
77+
item.lookup_list_field.value = 1
78+
item.post()
79+
item.apply()
80+
return item
81+
82+
83+

tests/project/admin.sqlite

83 KB
Binary file not shown.

tests/project/css/project.css

Whitespace-only changes.

tests/project/index.html

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<title>Jam.py tests</title>
6+
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/mocha/6.1.4/mocha.css">
7+
</head>
8+
<body>
9+
<div id="mocha"></div>
10+
<script src="https://cdnjs.cloudflare.com/ajax/libs/mocha/6.1.4/mocha.js"></script>
11+
<script src="https://cdnjs.cloudflare.com/ajax/libs/chai/4.2.0/chai.min.js"></script>
12+
13+
<script>mocha.setup('bdd')</script>
14+
<script src="jam/js/jquery.js"></script>
15+
<script src="jam/js/bs5/bootstrap.bundle.js"></script>
16+
<!--<script src="jam/js/bootstrap-datepicker.js"></script>-->
17+
<script src="jam/js/zebra_datepicker.js"></script>
18+
<script src="jam/js/jquery.maskedinput.js"></script>
19+
<script type="module" src="jam/js/jam.js"></script>
20+
21+
22+
<script src="js/test_dataset.js"></script>
23+
<script src="js/test_details.js"></script>
24+
<script src="js/test_fields.js"></script>
25+
<script src="js/test_edit_lock.js"></script>
26+
<script src="js/test_locale.js"></script>
27+
<script>
28+
$(document).ready(function(){
29+
task.load(function() {
30+
mocha.run();
31+
});
32+
});
33+
</script>
34+
</body>
35+
</html>

tests/project/index.html_old

Lines changed: 196 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,196 @@
1+
<!DOCTYPE html>
2+
3+
<html lang="en">
4+
<head>
5+
<meta charset="utf-8">
6+
<title></title>
7+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
8+
<link rel="icon" href="/jam/img/j.png" type="image/png">
9+
10+
<link href="jam/css/bootstrap.css" rel="stylesheet"> <!--do not modify-->
11+
<link href="jam/css/bootstrap-responsive.css" rel="stylesheet">
12+
<link href="jam/css/bootstrap-modal.css" rel="stylesheet">
13+
<link href="jam/css/datepicker.css" rel="stylesheet">
14+
<link href="jam/css/jam.css" rel="stylesheet"> <!--do not modify-->
15+
<link href="css/project.css" rel="stylesheet">
16+
</head>
17+
<body>
18+
<div id="container" class="container" style="display: none">
19+
<div class="row-fluid">
20+
<div class="span6">
21+
<p id="project-title" class="muted"></p>
22+
</div>
23+
<div id="logging-info" class="span6">
24+
<span id="user-info"></span>
25+
<a id="log-out" href="#" style="display: none">Log out</a>
26+
</div>
27+
</div>
28+
<div id="taskmenu" class="navbar">
29+
<div class="navbar-inner">
30+
<ul id="menu" class="nav">
31+
</ul>
32+
</div>
33+
</div>
34+
<div id="content">
35+
</div>
36+
</div>
37+
38+
<div class="templates" style="display: none">
39+
40+
<div class="default-top-view">
41+
<div class="form-header">
42+
<button id="new-btn" class="btn expanded-btn" type="button">
43+
<i class="icon-plus"></i> New<small class="muted">&nbsp;[Ctrl+Ins]</small>
44+
</button>
45+
<button id="edit-btn" class="btn expanded-btn" type="button">
46+
<i class="icon-edit"></i> Edit
47+
</button>
48+
<div id="report-btn" class="btn-group dropup">
49+
<a class="btn expanded-btn dropdown-toggle" data-toggle="dropdown" href="#">
50+
<i class="icon-print"></i> Reports
51+
<span class="caret"></span>
52+
</a>
53+
<ul class="dropdown-menu bottom-up">
54+
</ul>
55+
</div>
56+
<button id="delete-btn" class="btn expanded-btn pull-right" type="button">
57+
<i class="icon-trash"></i> Delete<small class="muted">&nbsp;[Ctrl+Del]</small>
58+
</button>
59+
</div>
60+
<div class="form-body">
61+
<div class="view-table"></div>
62+
<div class="view-detail"></div>
63+
</div>
64+
</div>
65+
66+
<div class="default-view">
67+
<div class="form-body">
68+
<div class="view-table"></div>
69+
<div class="view-detail"></div>
70+
</div>
71+
<div class="form-footer">
72+
<button id="delete-btn" class="btn expanded-btn pull-left" type="button">
73+
<i class="icon-trash"></i> Delete<small class="muted">&nbsp;[Ctrl+Del]</small>
74+
</button>
75+
<div id="report-btn" class="btn-group dropup">
76+
<a class="btn expanded-btn dropdown-toggle" data-toggle="dropdown" href="#">
77+
<i class="icon-print"></i> Reports
78+
<span class="caret"></span>
79+
</a>
80+
<ul class="dropdown-menu bottom-up">
81+
</ul>
82+
</div>
83+
<button id="edit-btn" class="btn expanded-btn" type="button">
84+
<i class="icon-edit"></i> Edit
85+
</button>
86+
<button id="new-btn" class="btn expanded-btn" type="button">
87+
<i class="icon-plus"></i> New<small class="muted">&nbsp;[Ctrl+Ins]</small>
88+
</button>
89+
</div>
90+
</div>
91+
92+
<div class="default-top-edit">
93+
<div class="form-header">
94+
<button type="button" id="ok-btn" class="btn btn-ary expanded-btn">
95+
<i class="icon-ok"></i> OK<small class="muted">&nbsp;[Ctrl+Enter]</small>
96+
</button>
97+
<button type="button" id="cancel-btn" class="btn expanded-btn">
98+
<i class="icon-remove"></i> Cancel
99+
</button>
100+
</div>
101+
<div class="form-body">
102+
<div class="edit-body"></div>
103+
<div class="edit-detail"></div>
104+
</div>
105+
</div>
106+
107+
<div class="default-edit">
108+
<div class="form-body">
109+
<div class="edit-body"></div>
110+
<div class="edit-detail"></div>
111+
</div>
112+
<div class="form-footer">
113+
<button type="button" id="ok-btn" class="btn btn-ary expanded-btn">
114+
<i class="icon-ok"></i> OK<small class="muted">&nbsp;[Ctrl+Enter]</small>
115+
</button>
116+
<button type="button" id="cancel-btn" class="btn expanded-btn">
117+
<i class="icon-remove"></i> Cancel
118+
</button>
119+
</div>
120+
</div>
121+
122+
<div class="default-param">
123+
<div class="form-body">
124+
<div class="edit-body">
125+
</div>
126+
</div>
127+
<div class="form-footer">
128+
<select id='extension' class="pull-left" style="width: 60px">
129+
<option>pdf</option>
130+
<option>ods</option>
131+
<option>xls</option>
132+
<option>html</option>
133+
</select>
134+
<button type="button" id="ok-btn" class="btn expanded-btn">
135+
<i class="icon-print"></i> Print
136+
</button>
137+
<button type="button" id="cancel-btn" class="btn expanded-btn">
138+
<i class="icon-remove"></i> Close
139+
</button>
140+
</div>
141+
</div>
142+
143+
<div class="default-filter">
144+
<div class="form-body">
145+
<div class="edit-body">
146+
</div>
147+
</div>
148+
<div class="form-footer">
149+
<button type="button" id="ok-btn" class="btn expanded-btn">
150+
<i class="icon-filter"></i> Apply
151+
</button>
152+
<button type="button" id="cancel-btn" class="btn expanded-btn">
153+
<i class="icon-remove"></i> Close
154+
</button>
155+
</div>
156+
</div>
157+
158+
<form id="login-form" target="dummy" class="form-horizontal" data-caption="Log in" style="margin: 10px 0 0; padding: 0px">
159+
<div class="control-group">
160+
<label class="control-label" for="input-login">Login</label>
161+
<div class="controls">
162+
<input type="text" id="input-login" name="login" tabindex="1" placeholder="login">
163+
</div>
164+
</div>
165+
<div class="control-group">
166+
<label class="control-label" for="input-password">Password</label>
167+
<div class="controls">
168+
<input type="password" id="input-password" name="password" tabindex="2" placeholder="password" autocomplete="on">
169+
</div>
170+
</div>
171+
<div class="form-footer">
172+
<input type="submit" class="btn expanded-btn pull-right" id="login-btn" value="OK" tabindex="3">
173+
</div>
174+
</form>
175+
176+
</div>
177+
<iframe src="dummy.html" name="dummy" style="display: none"></iframe>
178+
179+
<script src="jam/js/jquery.js"></script>
180+
<script src="jam/js/bootstrap.js"></script>
181+
<script src="jam/js/bootstrap-modal.js"></script>
182+
<script src="jam/js/bootstrap-modalmanager.js"></script>
183+
<script src="jam/js/bootstrap-datepicker.js"></script>
184+
<script src="jam/js/jquery.maskedinput.js"></script>
185+
<script src="jam/js/jam.js"></script>
186+
<!--<script src="static/js/Chart.min.js"></script>-->
187+
188+
189+
<script>
190+
$(document).ready(function(){
191+
task.load();
192+
});
193+
</script>
194+
195+
</body>
196+
</html>

0 commit comments

Comments
 (0)