first commit
This commit is contained in:
121
test/integration/array_summary_dynamic_test.py
Normal file
121
test/integration/array_summary_dynamic_test.py
Normal file
@@ -0,0 +1,121 @@
|
||||
from flask.ext.testing import LiveServerTestCase
|
||||
import mockredis
|
||||
from splinter import Browser
|
||||
from helix import main
|
||||
from helix.constants import sql_constant
|
||||
from helix.constants.module_type import ModuleType
|
||||
from helix.constants.system_type import SystemType
|
||||
from helix.constants.anchor_type import AnchorType
|
||||
from helix.constants import redis_constant
|
||||
from test.test_helpers import *
|
||||
|
||||
|
||||
class ArraySummaryDynamicTest(LiveServerTestCase):
|
||||
def create_app(self):
|
||||
redis_constant.redis_store = mockredis.mock_redis_client()
|
||||
sql_constant.sql_session_maker = lambda: SQLManager.get_sql_session_maker('postgres://pivotal:@localhost/test')
|
||||
|
||||
app = main.app
|
||||
app.config['TESTING'] = True
|
||||
app.config['LIVESERVER_PORT'] = 8943
|
||||
return app
|
||||
|
||||
@classmethod
|
||||
def setUpClass(cls):
|
||||
cls.test_db_session = test_db_session()
|
||||
cls.browser = Browser('phantomjs')
|
||||
|
||||
@classmethod
|
||||
def tearDownClass(cls):
|
||||
cls.test_db_session.close_all()
|
||||
cls.browser.quit()
|
||||
|
||||
def setUp(self):
|
||||
self.browser.visit('/array_summary/')
|
||||
|
||||
def tearDown(self):
|
||||
reset_db_session(self.test_db_session)
|
||||
self.browser.cookies.delete()
|
||||
|
||||
def fill_in_site_characterization_data(self,
|
||||
system_type=SystemType.singleTilt,
|
||||
module_type=ModuleType.Cell96):
|
||||
self.browser.visit(self.get_server_url() + '/site_characterization/')
|
||||
self.browser.fill('project_name', 'Test Project Name')
|
||||
self.browser.fill('building_width', '200')
|
||||
self.browser.fill('building_height', '30')
|
||||
self.browser.fill('building_length', '75.5')
|
||||
self.browser.fill('wind_speed', '125')
|
||||
self.browser.fill('ballast_block_weight', '13')
|
||||
self.browser.fill('building_parapet_height', '0')
|
||||
self.browser.fill('max_system_pressure', '10')
|
||||
self.browser.select('system_type', system_type.value)
|
||||
self.browser.select('anchor_type', AnchorType.EcoFasten.value)
|
||||
self.browser.select('module_type', module_type.value)
|
||||
self.browser.fill('design_spectral_response', '1.02')
|
||||
self.browser.find_by_value('Next').first.click()
|
||||
self.browser.visit(self.get_server_url() + '/array_summary/')
|
||||
|
||||
def upload_cad_block_file(self, file):
|
||||
self.browser.attach_file('file_upload', file)
|
||||
|
||||
def upload_dxf_file(self, file='test/fixtures/dxf/input_single_tilt_96_cell.dxf'):
|
||||
self.browser.attach_file('dxf_upload', file)
|
||||
|
||||
def test_shows_subarray_summary_table_if_user_has_uploaded_data(self):
|
||||
self.fill_in_site_characterization_data()
|
||||
self.upload_cad_block_file('test/fixtures/input_single_tilt_csv_for_bom.csv')
|
||||
assert len(self.browser.find_by_css('.upload_field .error_message')) == 0
|
||||
assert len(self.browser.find_by_css("#seismic_anchor_table")) > 0
|
||||
eq_(len(self.browser.find_by_css("#seismic_anchor_table tr")), 4)
|
||||
eq_(len(self.browser.find_by_css("#seismic_anchor_table tr:nth-child(2) td")), 13)
|
||||
|
||||
def test_shows_errors_if_user_tries_to_upload_select_invalid_data(self):
|
||||
self.fill_in_site_characterization_data()
|
||||
self.upload_cad_block_file('test/fixtures/invalid_wind_zone.csv')
|
||||
assert len(self.browser.find_by_id('error_message_txt')) > 0
|
||||
assert len(self.browser.find_by_css("#seismic_anchor_table")) == 0
|
||||
|
||||
# def test_shows_subarray_summary_table_after_user_uploads_dxf(self):
|
||||
# self.fill_in_site_characterization_data(system_type=SystemType.dualTilt)
|
||||
# self.upload_dxf_file('test/fixtures/dxf/input_dual_tilt_96_cell.dxf')
|
||||
# assert len(self.browser.find_by_css('.upload_field .error_message')) == 0
|
||||
# assert len(self.browser.find_by_css("#seismic_anchor_table")) > 0
|
||||
# eq_(len(self.browser.find_by_css("#seismic_anchor_table tr")), 4)
|
||||
# eq_(len(self.browser.find_by_css("#seismic_anchor_table tr:nth-child(2) td")), 8)
|
||||
|
||||
def test_indicates_that_user_has_already_uploaded_a_csv_file_after_uploading(self):
|
||||
self.fill_in_site_characterization_data()
|
||||
self.upload_cad_block_file('test/fixtures/input_single_tilt_csv_for_bom.csv')
|
||||
assert len(self.browser.find_by_css('.upload_field .error_message')) == 0
|
||||
assert 'input_single_tilt_csv_for_bom.csv' in self.browser.html
|
||||
|
||||
def test_adding_seismic_anchor_updates_subarray_summary(self):
|
||||
self.fill_in_site_characterization_data()
|
||||
self.upload_cad_block_file('test/fixtures/input_single_tilt_csv_for_bom.csv')
|
||||
assert self.browser.is_element_visible_by_css('#arrayCanvas')
|
||||
self.browser.execute_script('arrayVisualization.selectPanel(1631);')
|
||||
|
||||
self.browser.find_by_css('#add_seismic').click()
|
||||
assert self.browser.find_by_css('#current_anchors td:nth-child(14)').text == '1'
|
||||
|
||||
self.browser.find_by_css('#add_seismic').click()
|
||||
assert self.browser.find_by_css('#current_anchors td:nth-child(14)').text == '2'
|
||||
|
||||
def test_removig_seismic_anchor_updates_subarray_summary(self):
|
||||
self.fill_in_site_characterization_data()
|
||||
self.upload_cad_block_file('test/fixtures/input_single_tilt_csv_for_bom.csv')
|
||||
assert self.browser.is_element_visible_by_css('#arrayCanvas')
|
||||
self.browser.execute_script('arrayVisualization.selectPanel(1631);')
|
||||
|
||||
self.browser.find_by_css('#add_seismic').click()
|
||||
assert self.browser.find_by_css('#current_anchors td:nth-child(14)').text == '1'
|
||||
|
||||
self.browser.find_by_css('#remove_seismic').click()
|
||||
assert self.browser.find_by_css('#current_anchors td:nth-child(14)').text == '0'
|
||||
|
||||
# def test_indicate_that_user_has_uploaded_a_dxf_file_after_uploading_dxf(self):
|
||||
# self.fill_in_site_characterization_data(system_type=SystemType.dualTilt)
|
||||
# self.upload_dxf_file('test/fixtures/dxf/input_dual_tilt_96_cell.dxf')
|
||||
# assert len(self.browser.find_by_css('.upload_field .error_message')) == 0
|
||||
# assert 'input_dual_tilt_96_cell.dxf' in self.browser.html
|
||||
Reference in New Issue
Block a user