44import tempfile
55import warnings
66
7- import fasteners
87import grpc
98import hightime
109import numpy
1615import system_test_utilities # noqa: E402
1716
1817
19- # Set up some global information we need
18+ # Set up global information we need
2019test_files_base_dir = os .path .join (os .path .dirname (__file__ ))
2120
22- # We need a lock file so multiple tests aren't hitting the db at the same time
23- # Trying to create simulated DAQmx devices at the same time (which can happen when running
24- # tox with --parallel N, or when two different drivers are being tested at the same time on
25- # the same machine, can result in an internal error:
26- # -2147220733: MAX: (Hex 0x80040303) Internal error: The requested object was not found in
27- # the configuration database. Please note the steps you performed that led to this error and
28- # contact technical support at http://ni.com/support.
29- # This is filed as internal bug 255545
30- daqmx_sim_db_lock_file = os .path .join (tempfile .gettempdir (), 'daqmx_db.lock' )
31- daqmx_sim_db_lock = fasteners .InterProcessLock (daqmx_sim_db_lock_file )
32-
3321
3422def get_test_file_path (file_name ):
3523 return os .path .join (test_files_base_dir , file_name )
@@ -48,14 +36,6 @@ def session(self, session_creation_kwargs):
4836 with nifgen .Session ('' , '0' , False , 'Simulate=1, DriverSetup=Model:5433 (2CH);BoardType:PXIe' , ** session_creation_kwargs ) as simulated_session :
4937 yield simulated_session
5038
51- @pytest .fixture (scope = 'function' )
52- def session_5421 (self , session_creation_kwargs ):
53- with daqmx_sim_db_lock :
54- simulated_session = nifgen .Session ('' , '0' , False , 'Simulate=1, DriverSetup=Model:5421;BoardType:PXI' , ** session_creation_kwargs )
55- yield simulated_session
56- with daqmx_sim_db_lock :
57- simulated_session .close ()
58-
5939 def test_self_test (self , session ):
6040 # We should not get an assert if self_test passes
6141 session .self_test ()
@@ -91,13 +71,13 @@ def test_get_error(self, session):
9171 def test_method_get_self_cal_supported (self , session ):
9272 assert session .get_self_cal_supported () in [True , False ]
9373
94- # TODO(sbethur): When internal bug# 999932 is fixed, update the test to use PXIe-5433 (Tracked on GitHub by #1375)
95- def test_get_self_cal_last_date_and_time ( self , session_5421 ):
96- try :
97- session_5421 . get_self_cal_last_date_and_time ( )
98- assert False
99- except nifgen . Error as e :
100- assert e . code == - 1074118632 # This operation is not supported for simulated device
74+ def test_get_self_cal_last_date_and_time ( self , session ):
75+ before = hightime . datetime . now ()
76+ # Returned cal time does not have sub-minute info
77+ before = before . replace ( second = 0 , microsecond = 0 )
78+ last_cal_time = session . get_self_cal_last_date_and_time ()
79+ after = hightime . datetime . now ()
80+ assert before <= last_cal_time <= after
10181
10282 def test_self_cal (self , session ):
10383 session .self_cal ()
@@ -247,20 +227,19 @@ def test_create_arb_sequence(self, session):
247227 assert 0 == session .create_arb_sequence (waveform_handles_array , [10 ])
248228 assert 1 == session .create_arb_sequence (waveform_handles_array , [10 ])
249229
250- # TODO(sbethur): When internal bug# 227842 is fixed, update the test to use PXIe-5433 (Tracked on GitHub by #1376)
251- def test_create_advanced_arb_sequence (self , session_5421 ):
252- seq_handle_base = 100000 # This is not necessary on 5433 because handles start at 0.
230+ def test_create_advanced_arb_sequence (self , session ):
231+ seq_handle_base = 0 # On 5433, handles start at 0.
253232 waveform_data = [x * (1.0 / 256.0 ) for x in range (256 )]
254- waveform_handles_array = [session_5421 .create_waveform (waveform_data ), session_5421 .create_waveform (waveform_data ), session_5421 .create_waveform (waveform_data )]
233+ waveform_handles_array = [session .create_waveform (waveform_data ), session .create_waveform (waveform_data ), session .create_waveform (waveform_data )]
255234 marker_location_array = [0 , 16 , 32 ]
256235 sample_counts_array = [256 , 128 , 64 ]
257236 loop_counts_array = [10 , 20 , 30 ]
258- session_5421 .output_mode = nifgen .OutputMode .SEQ
237+ session .output_mode = nifgen .OutputMode .SEQ
259238 # Test relies on value of sequence handles starting at a known value and incrementing sequentially. Hardly ideal.
260- assert ([], seq_handle_base + 0 ) == session_5421 .create_advanced_arb_sequence (waveform_handles_array , loop_counts_array = loop_counts_array )
261- assert ([], seq_handle_base + 1 ) == session_5421 .create_advanced_arb_sequence (waveform_handles_array , loop_counts_array = loop_counts_array , sample_counts_array = sample_counts_array )
262- assert (marker_location_array , seq_handle_base + 2 ) == session_5421 .create_advanced_arb_sequence (waveform_handles_array , loop_counts_array = loop_counts_array , marker_location_array = marker_location_array )
263- assert (marker_location_array , seq_handle_base + 3 ) == session_5421 .create_advanced_arb_sequence (waveform_handles_array , loop_counts_array = loop_counts_array , sample_counts_array = sample_counts_array , marker_location_array = marker_location_array )
239+ assert ([], seq_handle_base + 0 ) == session .create_advanced_arb_sequence (waveform_handles_array , loop_counts_array = loop_counts_array )
240+ assert ([], seq_handle_base + 1 ) == session .create_advanced_arb_sequence (waveform_handles_array , loop_counts_array = loop_counts_array , sample_counts_array = sample_counts_array )
241+ assert (marker_location_array , seq_handle_base + 2 ) == session .create_advanced_arb_sequence (waveform_handles_array , loop_counts_array = loop_counts_array , marker_location_array = marker_location_array )
242+ assert (marker_location_array , seq_handle_base + 3 ) == session .create_advanced_arb_sequence (waveform_handles_array , loop_counts_array = loop_counts_array , sample_counts_array = sample_counts_array , marker_location_array = marker_location_array )
264243
265244 def test_arb_script (self , session ):
266245 waveform_data = [x * (1.0 / 256.0 ) for x in range (256 )]
@@ -469,16 +448,15 @@ def test_create_waveform_wrong_type(self, session):
469448 except (TypeError , ValueError ):
470449 pass
471450
472- # TODO(sbethur): When internal bug# 227842 is fixed, update the test to use PXIe-5433 (Tracked on GitHub by #1376)
473- def test_create_advanced_arb_sequence_wrong_size (self , session_5421 ):
451+ def test_create_advanced_arb_sequence_wrong_size (self , session ):
474452 waveform_data = [x * (1.0 / 256.0 ) for x in range (256 )]
475- waveform_handles_array = [session_5421 .create_waveform (waveform_data ), session_5421 .create_waveform (waveform_data ), session_5421 .create_waveform (waveform_data )]
453+ waveform_handles_array = [session .create_waveform (waveform_data ), session .create_waveform (waveform_data ), session .create_waveform (waveform_data )]
476454 marker_location_array = [0 , 16 ]
477455 loop_counts_array = [10 , 20 , 30 ]
478- session_5421 .output_mode = nifgen .OutputMode .SEQ
456+ session .output_mode = nifgen .OutputMode .SEQ
479457 # Test relies on value of sequence handles starting at a known value and incrementing sequentially. Hardly ideal.
480458 with pytest .raises (ValueError ) as exc_info :
481- session_5421 .create_advanced_arb_sequence (waveform_handles_array , loop_counts_array = loop_counts_array , marker_location_array = marker_location_array )
459+ session .create_advanced_arb_sequence (waveform_handles_array , loop_counts_array = loop_counts_array , marker_location_array = marker_location_array )
482460 assert exc_info .value .args [0 ] == 'Length of marker_location_array and waveform_handles_array parameters do not match.'
483461 assert str (exc_info .value ) == 'Length of marker_location_array and waveform_handles_array parameters do not match.'
484462
0 commit comments