本文整理汇总了Python中testfixtures.TempDirectory.getpath方法的典型用法代码示例。如果您正苦于以下问题:Python TempDirectory.getpath方法的具体用法?Python TempDirectory.getpath怎么用?Python TempDirectory.getpath使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类testfixtures.TempDirectory
的用法示例。
在下文中一共展示了TempDirectory.getpath方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: TestPrepareTarget
# 需要导入模块: from testfixtures import TempDirectory [as 别名]
# 或者: from testfixtures.TempDirectory import getpath [as 别名]
class TestPrepareTarget(TestCase):
def setUp(self):
self.dir = TempDirectory()
self.addCleanup(self.dir.cleanup)
replace = Replacer()
replace('workfront.generate.TARGET_ROOT', self.dir.path)
self.addCleanup(replace.restore)
self.session = Session('test')
def test_from_scratch(self):
path = prepare_target(self.session)
compare(path, expected=self.dir.getpath('unsupported.py'))
self.dir.compare(expected=[])
def test_everything(self):
self.dir.write('unsupported.py', b'yy')
path = prepare_target(self.session)
compare(path, expected=self.dir.getpath('unsupported.py'))
self.dir.compare(expected=['unsupported.py'])
compare(self.dir.read('unsupported.py'), b"yy")
def test_dots_in_version(self):
path = prepare_target(Session('test', api_version='v4.0'))
compare(path, expected=self.dir.getpath('v40.py'))
self.dir.compare(expected=[])
示例2: GitHelper
# 需要导入模块: from testfixtures import TempDirectory [as 别名]
# 或者: from testfixtures.TempDirectory import getpath [as 别名]
class GitHelper(object):
repo = 'local/'
def setUp(self):
self.dir = TempDirectory()
self.addCleanup(self.dir.cleanup)
def git(self, command, repo=None):
repo_path = self.dir.getpath(repo or self.repo)
try:
return check_output(['git'] + command.split(), cwd=repo_path, stderr=STDOUT)
except CalledProcessError as e:
self.fail(e.output)
def git_rev_parse(self, label, repo=None):
return self.git('rev-parse --verify -q --short '+label, repo).strip()
def check_tags(self, expected, repo=None):
actual = {}
for tag in self.git('tag', repo).split():
actual[tag] = self.git_rev_parse(tag, repo)
compare(expected, actual=actual)
def make_repo_with_content(self, repo):
if not os.path.exists(self.dir.getpath(repo)):
self.dir.makedir(repo)
self.git('init', repo)
self.dir.write(repo + 'a', 'some content')
self.dir.write(repo + 'b', 'other content')
self.dir.write(repo + 'c', 'more content')
self.git('add .', repo)
self.git('commit -m initial', repo)
示例3: HomeDirTest
# 需要导入模块: from testfixtures import TempDirectory [as 别名]
# 或者: from testfixtures.TempDirectory import getpath [as 别名]
class HomeDirTest(unittest.TestCase):
def setUp(self):
self.temp_dir = TempDirectory(create=True)
self.home = PathHomeDir(self.temp_dir.path)
def tearDown(self):
self.temp_dir.cleanup()
def test_read(self):
self.temp_dir.write("filename", "contents")
self.assertEquals(self.home.read("filename"), "contents")
def test_write(self):
self.temp_dir.write("existing_file", "existing_contents")
self.home.write("new_file", "contents")
self.home.write("existing_file", "new_contents")
self.assertEquals(self.temp_dir.read("existing_file"),
"new_contents")
self.assertEquals(self.temp_dir.read("new_file"), "contents")
def test_config_file(self):
with collect_outputs() as outputs:
self.home.write_config_file("new config")
self.temp_dir.check(".cosmosrc")
self.assertEquals(self.home.read_config_file(), "new config")
self.assertIn("Settings saved", outputs.stdout.getvalue())
file_mode = os.stat(self.temp_dir.getpath(".cosmosrc")).st_mode
self.assertEquals(file_mode, stat.S_IFREG | stat.S_IRUSR | stat.S_IWUSR)
def test_override_config_file(self):
with collect_outputs():
other_config = self.temp_dir.write("path/other", "config")
self.assertEquals(
self.home.read_config_file(filename_override=other_config),
"config")
def test_warn_on_unprotected_config_file(self):
with collect_outputs() as outputs:
self.home.write_config_file("new config")
config_path = self.temp_dir.getpath(".cosmosrc")
os.chmod(config_path, 0777)
self.home.read_config_file()
assertFunc = (self.assertNotIn if os.name=='nt' else self.assertIn)
assertFunc("WARNING", outputs.stderr.getvalue())
def test_last_cluster(self):
self.home.write_last_cluster("0000000")
self.temp_dir.check(".cosmoslast")
self.assertEquals(self.home.read_last_cluster(), "0000000")
示例4: Test_SnapshotArchive_Repository
# 需要导入模块: from testfixtures import TempDirectory [as 别名]
# 或者: from testfixtures.TempDirectory import getpath [as 别名]
class Test_SnapshotArchive_Repository(TestCase):
def setUp(self):
store = MemoryCommitStorage()
self.repo = BBRepository(store)
self.tempdir = TempDirectory()
self.setup_archive_a_snapshot()
def setup_archive_a_snapshot(self):
archive_name = 'somearchive.tgz'
self.archive_contents = '123'
self.archive_path = self.tempdir.write(archive_name,
self.archive_contents)
self.tag = generate_tag()
self.first_WAL = '01234'
self.last_WAL = '45678'
commit_snapshot_to_repository(self.repo, self.archive_path, self.tag,
self.first_WAL, self.last_WAL)
def tearDown(self):
self.tempdir.cleanup()
def test_can_retrieve_snapshot_contents_with_tag(self):
commit = [i for i in self.repo][-1]
restore_path = self.tempdir.getpath('restorearchive.tgz')
commit.get_contents_to_filename(restore_path)
self.assertEqual(self.archive_contents,
open(restore_path, 'rb').read())
def test_get_first_WAL_file_for_archived_snapshot_with_tag(self):
self.assertEqual(self.first_WAL, get_first_WAL(self.repo, self.tag))
def test_get_last_WAL_file_for_archived_snapshot_with_tag(self):
self.assertEqual(self.last_WAL, get_last_WAL(self.repo, self.tag))
示例5: TestPathSource
# 需要导入模块: from testfixtures import TempDirectory [as 别名]
# 或者: from testfixtures.TempDirectory import getpath [as 别名]
class TestPathSource(TestCase):
def setUp(self):
self.dir = TempDirectory()
self.addCleanup(self.dir.cleanup)
def test_abc(self):
self.assertTrue(issubclass(Plugin, Source))
def test_schema_ok(self):
p1 = self.dir.write('foo', b'f')
p2 = self.dir.write('bar', b'b')
compare(
dict(type='paths', values=[p1, p2], repo='config'),
Plugin.schema(
dict(type='paths', values=[p1, p2], repo='config')
))
def test_schema_wrong_type(self):
text = "not a valid value for dictionary value @ data['type']"
with ShouldFailSchemaWith(text):
Plugin.schema(dict(type='bar', values=['/']))
def test_schema_extra_keys(self):
with ShouldFailSchemaWith("extra keys not allowed @ data['foo']"):
Plugin.schema(dict(type='paths', foo='bar'))
def test_name_supplied(self):
text = "not a valid value for dictionary value @ data['name']"
with ShouldFailSchemaWith(text):
Plugin.schema(dict(type='paths', name='foo'))
def test_no_paths(self):
text = "length of value must be at least 1 for dictionary value " \
"@ data['values']"
with ShouldFailSchemaWith(text):
Plugin.schema(dict(type='paths', values=[]))
def test_path_not_string(self):
text = "invalid list value @ data['values'][0]"
with ShouldFailSchemaWith(text):
Plugin.schema(dict(type='paths', values=[1]))
def test_path_not_starting_with_slash(self):
text = "invalid list value @ data['values'][0]"
with ShouldFailSchemaWith(text):
Plugin.schema(dict(type='paths', values=['foo']))
def test_path_not_there(self):
text = "invalid list value @ data['values'][0]"
with ShouldFailSchemaWith(text):
Plugin.schema(dict(type='paths', values=[self.dir.getpath('bad')]))
def test_interface(self):
plugin = Plugin('source', name=None, repo='config',
values=['/foo/bar'])
compare(plugin.type, 'source')
compare(plugin.name, None)
compare(plugin.repo, 'config')
compare(plugin.source_paths, ['/foo/bar'])
示例6: DatabaseHandlerTests
# 需要导入模块: from testfixtures import TempDirectory [as 别名]
# 或者: from testfixtures.TempDirectory import getpath [as 别名]
class DatabaseHandlerTests(TestCase):
def setUp(self):
self.dir = TempDirectory()
self.db_path = self.dir.getpath('test.db')
self.conn = sqlite3.connect(self.db_path)
self.conn.execute('create table notes '
'(filename varchar, text varchar)')
self.conn.commit()
self.log = LogCapture()
def tearDown(self):
self.log.uninstall()
self.dir.cleanup()
def test_normal(self):
with DatabaseHandler(self.db_path) as handler:
handler.conn.execute('insert into notes values (?, ?)',
('test.txt', 'a note'))
handler.conn.commit()
# check the row was inserted and committed
curs = self.conn.cursor()
curs.execute('select * from notes')
self.assertEqual(curs.fetchall(), [('test.txt', 'a note')])
# check there was no logging
self.log.check()
def test_exception(self):
with ShouldRaise(Exception('foo')):
with DatabaseHandler(self.db_path) as handler:
handler.conn.execute('insert into notes values (?, ?)',
('test.txt', 'a note'))
raise Exception('foo')
# check the row not inserted and the transaction was rolled back
curs = handler.conn.cursor()
curs.execute('select * from notes')
self.assertEqual(curs.fetchall(), [])
# check the error was logged
self.log.check(('root', 'ERROR', 'Something went wrong'))
示例7: setUpModule
# 需要导入模块: from testfixtures import TempDirectory [as 别名]
# 或者: from testfixtures.TempDirectory import getpath [as 别名]
def setUpModule():
""" """
import os
d = TempDirectory()
if os.getenv('SQLALCHEMY_URL'):
settings['sqlalchemy.url'] = os.getenv('SQLALCHEMY_URL')
else:
sqlalchemy_url = "sqlite:///%(here)s/sns.sqlite" % dict(here=d.path)
settings['sqlalchemy.url'] = sqlalchemy_url
from alembic.config import Config
from alembic import command
alembic_cfg = Config("alembic.ini")
alembic_cfg.set_main_option('sqlalchemy.url', sqlalchemy_url)
command.upgrade(alembic_cfg, "head")
if os.getenv('USE_REDIS'):
settings['cache.registration.backend'] = 'dogpile.cache.redis'
settings['pyramid.includes'].append('pyramid_redis_sessions')
else:
from sns.testing import FakeLock
settings['cache.registration.backend'] = "dogpile.cache.dbm"
settings['cache.registration.arguments.filename'] = d.getpath('registration.dbm')
settings['cache.registration.arguments.lock_factory'] = FakeLock
settings['pyramid.includes'].append('sns.signed_cookie_session')
示例8: TestJenkinsSource
# 需要导入模块: from testfixtures import TempDirectory [as 别名]
# 或者: from testfixtures.TempDirectory import getpath [as 别名]
class TestJenkinsSource(TestCase):
def setUp(self):
self.dir = TempDirectory()
self.addCleanup(self.dir.cleanup)
def test_abc(self):
self.assertTrue(issubclass(Plugin, Source))
def test_schema_max(self):
compare(
dict(type='jenkins', name='core', repo='config',
path=self.dir.path),
actual=Plugin.schema(
dict(type='jenkins', name='core', repo='config',
path=self.dir.path)
))
def test_schema_min(self):
compare(
dict(type='jenkins', name='jenkins',
repo='config', path=self.dir.path),
actual=Plugin.schema(
dict(type='jenkins', repo='config',
path=self.dir.path)
))
def test_schema_wrong_type(self):
text = "expected str for dictionary value @ data['path']"
with ShouldFailSchemaWith(text):
Plugin.schema(dict(type='bar', path=['/']))
def test_schema_extra_keys(self):
with ShouldFailSchemaWith("extra keys not allowed @ data['foo']"):
Plugin.schema(dict(type='jenkins', foo='bar'))
def test_invalid_name(self):
text = "expected str for dictionary value @ data['name']"
with ShouldFailSchemaWith(text):
Plugin.schema(dict(type='jenkins', name=[]))
def test_no_path(self):
text = "'' does not exist for dictionary value @ data['path']"
with ShouldFailSchemaWith(text):
Plugin.schema(dict(type='jenkins', path=''))
def test_path_not_string(self):
text = "expected str for dictionary value @ data['path']"
with ShouldFailSchemaWith(text):
Plugin.schema(dict(type='jenkins', path=1))
def test_path_not_there(self):
invalid = self.dir.getpath('foo')
text = "'%s' does not exist for dictionary value @ data['path']" % (
invalid
)
with ShouldFailSchemaWith(text):
Plugin.schema(dict(type='jenkins', path=invalid))
def test_interface(self):
plugin = Plugin('source', name='jenkins', repo='config',
path='root')
compare(plugin.type, 'source')
compare(plugin.name, 'jenkins')
compare(plugin.repo, 'config')
compare(plugin.source_paths, 'root')
示例9: BcolzMinuteBarTestCase
# 需要导入模块: from testfixtures import TempDirectory [as 别名]
# 或者: from testfixtures.TempDirectory import getpath [as 别名]
class BcolzMinuteBarTestCase(TestCase):
@classmethod
def setUpClass(cls):
cls.env = TradingEnvironment()
all_market_opens = cls.env.open_and_closes.market_open
all_market_closes = cls.env.open_and_closes.market_close
indexer = all_market_opens.index.slice_indexer(
start=TEST_CALENDAR_START,
end=TEST_CALENDAR_STOP
)
cls.market_opens = all_market_opens[indexer]
cls.market_closes = all_market_closes[indexer]
cls.test_calendar_start = cls.market_opens.index[0]
cls.test_calendar_stop = cls.market_opens.index[-1]
def setUp(self):
self.dir_ = TempDirectory()
self.dir_.create()
self.dest = self.dir_.getpath('minute_bars')
os.makedirs(self.dest)
self.writer = BcolzMinuteBarWriter(
TEST_CALENDAR_START,
self.dest,
self.market_opens,
self.market_closes,
US_EQUITIES_MINUTES_PER_DAY,
)
self.reader = BcolzMinuteBarReader(self.dest)
def tearDown(self):
self.dir_.cleanup()
def test_write_one_ohlcv(self):
minute = self.market_opens[self.test_calendar_start]
sid = 1
data = DataFrame(
data={
'open': [10.0],
'high': [20.0],
'low': [30.0],
'close': [40.0],
'volume': [50.0]
},
index=[minute])
self.writer.write(sid, data)
open_price = self.reader.get_value(sid, minute, 'open')
self.assertEquals(10.0, open_price)
high_price = self.reader.get_value(sid, minute, 'high')
self.assertEquals(20.0, high_price)
low_price = self.reader.get_value(sid, minute, 'low')
self.assertEquals(30.0, low_price)
close_price = self.reader.get_value(sid, minute, 'close')
self.assertEquals(40.0, close_price)
volume_price = self.reader.get_value(sid, minute, 'volume')
self.assertEquals(50.0, volume_price)
def test_write_two_bars(self):
minute_0 = self.market_opens[self.test_calendar_start]
minute_1 = minute_0 + timedelta(minutes=1)
sid = 1
data = DataFrame(
data={
'open': [10.0, 11.0],
'high': [20.0, 21.0],
'low': [30.0, 31.0],
'close': [40.0, 41.0],
'volume': [50.0, 51.0]
},
index=[minute_0, minute_1])
self.writer.write(sid, data)
open_price = self.reader.get_value(sid, minute_0, 'open')
self.assertEquals(10.0, open_price)
high_price = self.reader.get_value(sid, minute_0, 'high')
self.assertEquals(20.0, high_price)
low_price = self.reader.get_value(sid, minute_0, 'low')
self.assertEquals(30.0, low_price)
close_price = self.reader.get_value(sid, minute_0, 'close')
self.assertEquals(40.0, close_price)
volume_price = self.reader.get_value(sid, minute_0, 'volume')
#.........这里部分代码省略.........
示例10: BcolzDailyBarTestCase
# 需要导入模块: from testfixtures import TempDirectory [as 别名]
# 或者: from testfixtures.TempDirectory import getpath [as 别名]
class BcolzDailyBarTestCase(TestCase):
@classmethod
def setUpClass(cls):
all_trading_days = TradingEnvironment().trading_days
cls.trading_days = all_trading_days[
all_trading_days.get_loc(TEST_CALENDAR_START):
all_trading_days.get_loc(TEST_CALENDAR_STOP) + 1
]
def setUp(self):
self.asset_info = EQUITY_INFO
self.writer = SyntheticDailyBarWriter(
self.asset_info,
self.trading_days,
)
self.dir_ = TempDirectory()
self.dir_.create()
self.dest = self.dir_.getpath('daily_equity_pricing.bcolz')
def tearDown(self):
self.dir_.cleanup()
@property
def assets(self):
return self.asset_info.index
def trading_days_between(self, start, end):
return self.trading_days[self.trading_days.slice_indexer(start, end)]
def asset_start(self, asset_id):
return self.writer.asset_start(asset_id)
def asset_end(self, asset_id):
return self.writer.asset_end(asset_id)
def dates_for_asset(self, asset_id):
start, end = self.asset_start(asset_id), self.asset_end(asset_id)
return self.trading_days_between(start, end)
def test_write_ohlcv_content(self):
result = self.writer.write(self.dest, self.trading_days, self.assets)
for column in SyntheticDailyBarWriter.OHLCV:
idx = 0
data = result[column][:]
multiplier = 1 if column == 'volume' else 1000
for asset_id in self.assets:
for date in self.dates_for_asset(asset_id):
self.assertEqual(
SyntheticDailyBarWriter.expected_value(
asset_id,
date,
column
) * multiplier,
data[idx],
)
idx += 1
self.assertEqual(idx, len(data))
def test_write_day_and_id(self):
result = self.writer.write(self.dest, self.trading_days, self.assets)
idx = 0
ids = result['id']
days = result['day']
for asset_id in self.assets:
for date in self.dates_for_asset(asset_id):
self.assertEqual(ids[idx], asset_id)
self.assertEqual(date, seconds_to_timestamp(days[idx]))
idx += 1
def test_write_attrs(self):
result = self.writer.write(self.dest, self.trading_days, self.assets)
expected_first_row = {
'1': 0,
'2': 5, # Asset 1 has 5 trading days.
'3': 12, # Asset 2 has 7 trading days.
'4': 33, # Asset 3 has 21 trading days.
'5': 44, # Asset 4 has 11 trading days.
'6': 49, # Asset 5 has 5 trading days.
}
expected_last_row = {
'1': 4,
'2': 11,
'3': 32,
'4': 43,
'5': 48,
'6': 57, # Asset 6 has 9 trading days.
}
expected_calendar_offset = {
'1': 0, # Starts on 6-01, 1st trading day of month.
'2': 15, # Starts on 6-22, 16th trading day of month.
'3': 1, # Starts on 6-02, 2nd trading day of month.
'4': 0, # Starts on 6-01, 1st trading day of month.
'5': 9, # Starts on 6-12, 10th trading day of month.
'6': 10, # Starts on 6-15, 11th trading day of month.
}
self.assertEqual(result.attrs['first_row'], expected_first_row)
self.assertEqual(result.attrs['last_row'], expected_last_row)
#.........这里部分代码省略.........
示例11: Skeleton_S3CommitStorage_Against_Mock
# 需要导入模块: from testfixtures import TempDirectory [as 别名]
# 或者: from testfixtures.TempDirectory import getpath [as 别名]
class Skeleton_S3CommitStorage_Against_Mock(TestCase):
__test__ = False
def setUp(self):
self.tempdir = TempDirectory()
self.setup_mock_defaults()
self.store = S3CommitStorage(self.mock_bucket, self.bucket_prefix)
def setup_mock_defaults(self):
self.mock_bucket = Mock(spec=Bucket)
self.set_bucket_list([])
def tearDown(self):
self.tempdir.cleanup()
def prefix_key(self, key):
return ''.join([self.bucket_prefix or '', key])
def set_bucket_list(self, keynames):
prefixed_keynames = [self.prefix_key(key) for key in keynames]
key_objs = [Key(None, key) for key in prefixed_keynames]
self.mock_bucket.list.return_value = key_objs
def test_get_tags_calls_bucket_list__empty(self):
self.assertEqual([], self.store.get_tags())
self.mock_bucket.list.assert_called_with(prefix=self.prefix_key(''))
def test_get_tags_calls_bucket_list_not_empty(self):
self.set_bucket_list(['tag1_msg1', 'tag2_msg2'])
self.store.get_tags()
self.mock_bucket.list.assert_called_with(prefix=self.prefix_key(''))
def test_get_tags_parses_keys_properly(self):
self.set_bucket_list(['tag1_msg1', 'tag2_msg2'])
self.assertEqual(['tag1', 'tag2'], self.store.get_tags())
def test_get_message_for_tag_calls_bucket_list(self):
self.set_bucket_list(['tag1_msg1'])
self.store.get_message_for_tag('tag1')
prefix = self.prefix_key(''.join(['tag1', '_']))
self.mock_bucket.list.assert_called_with(prefix=prefix)
def test_get_message_for_tag_parses_keyname_properly(self):
self.set_bucket_list(['tag1_msg1'])
self.assertEqual('msg1', self.store.get_message_for_tag('tag1'))
def test_add_commit_calls_new_key_with_expected_format(self):
filename1 = self.tempdir.write('file1', 'some file contents')
self.store.add_commit('tag1', open(filename1, 'rb'), 'some_message')
expected_key_name = self.prefix_key(''.join(['tag1',
'_', 'some_message']))
self.mock_bucket.new_key.assert_called_with(expected_key_name)
def test_add_commit_calls_set_contents_from_filename(self):
commit_contents = 'some file contents'
filename1 = self.tempdir.write('file1', commit_contents)
fp1 = open(filename1, 'rb')
self.store.add_commit('tag1', fp1, 'some_message')
new_key_mock = self.mock_bucket.new_key.return_value
new_key_mock.set_contents_from_file.assert_called_once()
mock_last_called_kwargs = new_key_mock.\
set_contents_from_file.call_args[1]
mock_actual_headers = mock_last_called_kwargs['headers']
lower_headers = {}
for k in mock_actual_headers:
lower_headers[k.lower()] = mock_actual_headers[k]
expected_headers = {
'Content-Type': 'application/octet-stream',
'Content-Encoding': 'gzip',
'x-amz-meta-fingerprint': md5(commit_contents).hexdigest()}
for header in expected_headers:
self.assertIn(header.lower(), lower_headers.keys())
self.assertEqual(expected_headers[header],
lower_headers[header.lower()])
def test_delete_commit_calls_get_key(self):
self.set_bucket_list(['tag1_msg1'])
self.store.delete_commit('tag1')
self.mock_bucket.get_key.assert_called_with(
self.prefix_key('tag1_msg1'))
self.mock_bucket.get_key.return_value.delete.assert_called_with()
def test_get_commit_contents_calls_get_contents_to_filename(self):
self.set_bucket_list(['tag1_msg1'])
target_file = self.tempdir.getpath('restored_file')
self.store.get_commit_contents_to_filename('tag1', target_file)
get_key = self.mock_bucket.get_key.return_value
get_key.get_contents_to_filename.assert_called_once()
def test_if_no_content_encoding_restores_to_target_file(self):
self.set_bucket_list(['tag1_msg1'])
target_file = self.tempdir.getpath('restored_file')
self.store.get_commit_contents_to_filename('tag1', target_file)
get_key = self.mock_bucket.get_key.return_value
get_key.get_contents_to_filename.assert_called_with(target_file)
def test_if_content_encoding_gzip_calls_gunzip_key_to_filename(self):
self.set_bucket_list(['tag1_msg1'])
target_file = self.tempdir.getpath('restored_file')
self.store._gunzip_key_to_filename = Mock()
#.........这里部分代码省略.........
示例12: BcolzDailyBarTestCase
# 需要导入模块: from testfixtures import TempDirectory [as 别名]
# 或者: from testfixtures.TempDirectory import getpath [as 别名]
class BcolzDailyBarTestCase(TestCase):
@classmethod
def setUpClass(cls):
all_trading_days = TradingEnvironment().trading_days
cls.trading_days = all_trading_days[
all_trading_days.get_loc(TEST_CALENDAR_START):
all_trading_days.get_loc(TEST_CALENDAR_STOP) + 1
]
def setUp(self):
self.asset_info = EQUITY_INFO
self.writer = SyntheticDailyBarWriter(
self.asset_info,
self.trading_days,
)
self.dir_ = TempDirectory()
self.dir_.create()
self.dest = self.dir_.getpath('daily_equity_pricing.bcolz')
def tearDown(self):
self.dir_.cleanup()
@property
def assets(self):
return self.asset_info.index
def trading_days_between(self, start, end):
return self.trading_days[self.trading_days.slice_indexer(start, end)]
def asset_start(self, asset_id):
return self.writer.asset_start(asset_id)
def asset_end(self, asset_id):
return self.writer.asset_end(asset_id)
def dates_for_asset(self, asset_id):
start, end = self.asset_start(asset_id), self.asset_end(asset_id)
return self.trading_days_between(start, end)
def test_write_ohlcv_content(self):
result = self.writer.write(self.dest, self.trading_days, self.assets)
for column in SyntheticDailyBarWriter.OHLCV:
idx = 0
data = result[column][:]
multiplier = 1 if column == 'volume' else 1000
for asset_id in self.assets:
for date in self.dates_for_asset(asset_id):
self.assertEqual(
SyntheticDailyBarWriter.expected_value(
asset_id,
date,
column
) * multiplier,
data[idx],
)
idx += 1
self.assertEqual(idx, len(data))
def test_write_day_and_id(self):
result = self.writer.write(self.dest, self.trading_days, self.assets)
idx = 0
ids = result['id']
days = result['day']
for asset_id in self.assets:
for date in self.dates_for_asset(asset_id):
self.assertEqual(ids[idx], asset_id)
self.assertEqual(date, seconds_to_timestamp(days[idx]))
idx += 1
def test_write_attrs(self):
result = self.writer.write(self.dest, self.trading_days, self.assets)
expected_first_row = {
'1': 0,
'2': 5, # Asset 1 has 5 trading days.
'3': 12, # Asset 2 has 7 trading days.
'4': 33, # Asset 3 has 21 trading days.
'5': 44, # Asset 4 has 11 trading days.
'6': 49, # Asset 5 has 5 trading days.
}
expected_last_row = {
'1': 4,
'2': 11,
'3': 32,
'4': 43,
'5': 48,
'6': 57, # Asset 6 has 9 trading days.
}
expected_calendar_offset = {
'1': 0, # Starts on 6-01, 1st trading day of month.
'2': 15, # Starts on 6-22, 16th trading day of month.
'3': 1, # Starts on 6-02, 2nd trading day of month.
'4': 0, # Starts on 6-01, 1st trading day of month.
'5': 9, # Starts on 6-12, 10th trading day of month.
'6': 10, # Starts on 6-15, 11th trading day of month.
}
self.assertEqual(result.attrs['first_row'], expected_first_row)
self.assertEqual(result.attrs['last_row'], expected_last_row)
#.........这里部分代码省略.........
示例13: BcolzMinuteBarTestCase
# 需要导入模块: from testfixtures import TempDirectory [as 别名]
# 或者: from testfixtures.TempDirectory import getpath [as 别名]
class BcolzMinuteBarTestCase(TestCase):
@classmethod
def setUpClass(cls):
cls.env = TradingEnvironment()
all_market_opens = cls.env.open_and_closes.market_open
all_market_closes = cls.env.open_and_closes.market_close
indexer = all_market_opens.index.slice_indexer(
start=TEST_CALENDAR_START,
end=TEST_CALENDAR_STOP
)
cls.market_opens = all_market_opens[indexer]
cls.market_closes = all_market_closes[indexer]
cls.test_calendar_start = cls.market_opens.index[0]
cls.test_calendar_stop = cls.market_opens.index[-1]
def setUp(self):
self.dir_ = TempDirectory()
self.dir_.create()
self.dest = self.dir_.getpath('minute_bars')
os.makedirs(self.dest)
self.writer = BcolzMinuteBarWriter(
TEST_CALENDAR_START,
self.dest,
self.market_opens,
self.market_closes,
US_EQUITIES_MINUTES_PER_DAY,
)
self.reader = BcolzMinuteBarReader(self.dest)
def tearDown(self):
self.dir_.cleanup()
def test_write_one_ohlcv(self):
minute = self.market_opens[self.test_calendar_start]
sid = 1
data = DataFrame(
data={
'open': [10.0],
'high': [20.0],
'low': [30.0],
'close': [40.0],
'volume': [50.0]
},
index=[minute])
self.writer.write_sid(sid, data)
open_price = self.reader.get_value(sid, minute, 'open')
self.assertEquals(10.0, open_price)
high_price = self.reader.get_value(sid, minute, 'high')
self.assertEquals(20.0, high_price)
low_price = self.reader.get_value(sid, minute, 'low')
self.assertEquals(30.0, low_price)
close_price = self.reader.get_value(sid, minute, 'close')
self.assertEquals(40.0, close_price)
volume_price = self.reader.get_value(sid, minute, 'volume')
self.assertEquals(50.0, volume_price)
def test_write_two_bars(self):
minute_0 = self.market_opens[self.test_calendar_start]
minute_1 = minute_0 + timedelta(minutes=1)
sid = 1
data = DataFrame(
data={
'open': [10.0, 11.0],
'high': [20.0, 21.0],
'low': [30.0, 31.0],
'close': [40.0, 41.0],
'volume': [50.0, 51.0]
},
index=[minute_0, minute_1])
self.writer.write_sid(sid, data)
open_price = self.reader.get_value(sid, minute_0, 'open')
self.assertEquals(10.0, open_price)
high_price = self.reader.get_value(sid, minute_0, 'high')
self.assertEquals(20.0, high_price)
low_price = self.reader.get_value(sid, minute_0, 'low')
self.assertEquals(30.0, low_price)
close_price = self.reader.get_value(sid, minute_0, 'close')
self.assertEquals(40.0, close_price)
volume_price = self.reader.get_value(sid, minute_0, 'volume')
#.........这里部分代码省略.........
示例14: Skeleton_Repository_Operations_With_SpecificCommitStorage
# 需要导入模块: from testfixtures import TempDirectory [as 别名]
# 或者: from testfixtures.TempDirectory import getpath [as 别名]
class Skeleton_Repository_Operations_With_SpecificCommitStorage(TestCase):
__test__ = False # to prevent nose from running this skeleton
def setUp(self):
raise Exception('This is a skeleton for test - you need to provide'
' your own setUp() and tearDown()')
def setup_tempdir(self):
# call this from your setUp
self.tempdir = TempDirectory()
self.file1_contents = 'some contents'
self.file2_contents = 'some other contents'
self.filename1 = self.tempdir.write('file1', self.file1_contents)
self.filename2 = self.tempdir.write('file2', self.file2_contents)
def teardown_tempdir(self):
# call this from your tearDown
self.tempdir.cleanup()
def setup_repository(self):
# call this from your setUp after creating your store
self.repo = BBRepository(self.store)
def commit_filename1(self, tag, message=None):
self.repo.create_commit_from_filename(tag, self.filename1, message)
def commit_filename2(self, tag, message=None):
self.repo.create_commit_from_filename(tag, self.filename2, message)
def test_can_commit_filenames_to_repository(self):
self.commit_filename1('some-tag')
def test_commit_tag_characters_are_limited(self):
def will_raise_Exception():
self.commit_filename1('illegal tag with spaces')
self.assertRaises(Exception, will_raise_Exception)
def test_commit_tag_must_be_non_empty(self):
def will_raise_Exception():
self.commit_filename1('')
self.assertRaises(Exception, will_raise_Exception)
def test_repo_is_empty_to_start(self):
self.assertEqual([], [c for c in self.repo])
def test_can_commit_files_and_list_commits(self):
self.commit_filename1('some-tag')
self.assertEqual(['some-tag'], [c.tag for c in self.repo])
def test_can_commit_and_retrieve_contents(self):
self.commit_filename1('some-tag')
commit = self.repo['some-tag']
restore_file = self.tempdir.getpath('file3')
commit.get_contents_to_filename(restore_file)
self.assertEqual(self.file1_contents, open(restore_file, 'rb').read())
def test_tags_are_unique(self):
self.commit_filename1('some-tag')
def will_raise_DuplicateTagError():
self.repo.create_commit_from_filename('some-tag', self.filename2)
self.assertRaises(DuplicateTagError, will_raise_DuplicateTagError)
def test_duplicate_tag_with_identical_contents_okay(self):
self.commit_filename1('some-tag')
self.commit_filename1('some-tag')
commit = self.repo['some-tag']
restore_file = self.tempdir.getpath('file3')
commit.get_contents_to_filename(restore_file)
self.assertEqual(self.file1_contents, open(restore_file, 'rb').read())
def test_can_get_commit_before_a_given_commit(self):
self.commit_filename1('a')
self.commit_filename1('b')
commit_b = self.repo['b']
self.assertEqual('a', self.repo.get_commit_before(commit_b).tag)
def test_commit_before_first_raises_ValueError(self):
self.commit_filename1('a')
def will_raise_ValueError():
self.repo.get_commit_before(self.repo['a'])
self.assertRaises(ValueError, will_raise_ValueError)
def test_commits_are_sorted(self):
self.commit_filename1('c')
self.commit_filename1('a')
self.commit_filename1('b')
self.assertEqual(['a', 'b', 'c'], [c.tag for c in self.repo])
def test_can_delete_commits_before_a_specified_commit(self):
self.commit_filename1('a')
self.commit_filename1('b')
self.commit_filename1('c')
self.repo.delete_commits_before(self.repo['c'])
self.assertEqual(['c'], [c.tag for c in self.repo])
def test_can_store_and_retrieve_message_with_commit(self):
message = 'some-extra-data'
self.commit_filename1('a', message)
#.........这里部分代码省略.........
示例15: BcolzMinuteBarTestCase
# 需要导入模块: from testfixtures import TempDirectory [as 别名]
# 或者: from testfixtures.TempDirectory import getpath [as 别名]
class BcolzMinuteBarTestCase(TestCase):
@classmethod
def setUpClass(cls):
cls.env = TradingEnvironment()
all_market_opens = cls.env.open_and_closes.market_open
indexer = all_market_opens.index.slice_indexer(
start=TEST_CALENDAR_START,
end=TEST_CALENDAR_STOP
)
cls.market_opens = all_market_opens[indexer]
cls.test_calendar_start = cls.market_opens.index[0]
cls.test_calendar_stop = cls.market_opens.index[-1]
def setUp(self):
self.dir_ = TempDirectory()
self.dir_.create()
self.dest = self.dir_.getpath('minute_bars')
os.makedirs(self.dest)
self.writer = BcolzMinuteBarWriter(
TEST_CALENDAR_START,
self.dest,
self.market_opens,
US_EQUITIES_MINUTES_PER_DAY,
)
self.reader = BcolzMinuteBarReader(self.dest)
def tearDown(self):
self.dir_.cleanup()
def test_write_one_ohlcv(self):
minute = self.market_opens[self.test_calendar_start]
sid = 1
data = DataFrame(
data={
'open': [10.0],
'high': [20.0],
'low': [30.0],
'close': [40.0],
'volume': [50.0]
},
index=[minute])
self.writer.write(sid, data)
open_price = self.reader.get_value(sid, minute, 'open')
self.assertEquals(10.0, open_price)
high_price = self.reader.get_value(sid, minute, 'high')
self.assertEquals(20.0, high_price)
low_price = self.reader.get_value(sid, minute, 'low')
self.assertEquals(30.0, low_price)
close_price = self.reader.get_value(sid, minute, 'close')
self.assertEquals(40.0, close_price)
volume_price = self.reader.get_value(sid, minute, 'volume')
self.assertEquals(50.0, volume_price)
def test_write_two_bars(self):
minute_0 = self.market_opens[self.test_calendar_start]
minute_1 = minute_0 + timedelta(minutes=1)
sid = 1
data = DataFrame(
data={
'open': [10.0, 11.0],
'high': [20.0, 21.0],
'low': [30.0, 31.0],
'close': [40.0, 41.0],
'volume': [50.0, 51.0]
},
index=[minute_0, minute_1])
self.writer.write(sid, data)
open_price = self.reader.get_value(sid, minute_0, 'open')
self.assertEquals(10.0, open_price)
high_price = self.reader.get_value(sid, minute_0, 'high')
self.assertEquals(20.0, high_price)
low_price = self.reader.get_value(sid, minute_0, 'low')
self.assertEquals(30.0, low_price)
close_price = self.reader.get_value(sid, minute_0, 'close')
self.assertEquals(40.0, close_price)
volume_price = self.reader.get_value(sid, minute_0, 'volume')
self.assertEquals(50.0, volume_price)
#.........这里部分代码省略.........