Files
quantconnect--lean/Tests/DownloaderDataProvider/DataDownloadConfigTests.cs
T
Roman Yavnikov 87a65451ea Feature: Universe Data Downloader (#8612)
* feat: parsing of universe file path for different security types

* fix: market position in parsing of universe file
refactor: add example of universes file path in xml description method

* test:feat: parsing of universe path

* rename: return variable in ParseUniversePath

* feat: extension to create history request internally

* feat: entity  DataUniverseDownloaderGetParameters

* config: downloaderDataProvider project

* feat: create DataUniverseDownloadConfig in download project

* feat: run universe downloader in DownloaderProvider

* test:fix: missing using
test:remove: parameter ctor of DataDownloadConfig

* refactor: run Universe downloader in Main

* feat: GetUniverseFileName by processingDate

* refactor: CreateDataUniverseDownloaderGetParameters with using Start and EndDate
refactor: exception message in DataUniverseDownloadConfig

* feat: new out argument in TryParsePath's LeanData

* feat: RunUniverseDownloader in DownloadDataProvider

* feat: DerivativeUniverseData to write csv file
feat: extension to download universe data with different parameters

* remove: log warn which path when get universe file path

* refactor: DataUniverseDownloaderGetParameters
feat: run Download Universes file in DownloaderDataProvider internally

* refactor: overload TryParsePath only with 4 parameters

* remove: editconfig file in DownloaderDataProvider

* remove: validation on null parameters

* rename: typo DateType to DataType

* refactor: use endDate in ctor DataUniverseDownloaderGetParameters
refactor: use UnderlyingSymbol from base class Symbol property
remove: CreateDataUniverseDownloaderGetParameters()
refactor: put LoadSymbol in base class
clean/remove: DataUniverseDownloadConfig

* refactor: use Time.EachTradeableDay in CreateDataDownloaderGetParameters
remove: CheckMarketOpenStatus

* fix: RunUniverseDownloader with EndUtc in DownloaderDataProvider

* refactor: GetUniverseFullFilePath

* remove:  validate historyData like Any

* fix: use date from parsing path in DownloaderDataProvider

* feat: download QuoteBar for Universe file
feat: handle QuoteBar in DerivativeUniverseData
refactor: filter option in final dictionary

* revert: CreateHistoryRequest() in DownloaderExtensions

* feat: use optional parameter SecurityExchangeHours in DataUniverseDownloaderGetParameters
refactor: DataUniverseDownloaderGetParameters
refactor: use Log.Debug instead Log.Trace to prevent spamming

* fix: ordering of download universe data
revert: parameter ctor in DataDownloadConfig
revert:test: use parameter ctor instead of Config.Set

* clean: extra `usings`

* fix: Get DataType in DataDownloadConfig
feat: new ctor in BaseDataDownloadConfig
2025-03-12 19:38:18 -03:00

58 lines
2.4 KiB
C#

/*
* QUANTCONNECT.COM - Democratizing Finance, Empowering Individuals.
* Lean Algorithmic Trading Engine v2.0. Copyright 2014 QuantConnect Corporation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
using NUnit.Framework;
using QuantConnect.Configuration;
using QuantConnect.DownloaderDataProvider.Launcher.Models;
namespace QuantConnect.Tests.DownloaderDataProvider
{
[TestFixture]
public class DataDownloadConfigTests
{
[TestCase(null, "BTCUSDT", SecurityType.Crypto, "coinbase", false)]
[TestCase(null, "BTCUSDT", SecurityType.Crypto, "coinbase", true)]
[TestCase("", "ETHUSDT", SecurityType.Crypto, "coinbase", false)]
[TestCase("", "ETHUSDT", SecurityType.Crypto, "coinbase", true)]
[TestCase(null, "AAPL", SecurityType.Equity, "usa", false)]
[TestCase(null, "AAPL", SecurityType.Equity, "usa", true)]
[TestCase("", "AAPL", SecurityType.Equity, "usa", false)]
[TestCase("", "AAPL", SecurityType.Equity, "usa", true)]
[TestCase("USA", "AAPL", SecurityType.Equity, "usa")]
[TestCase("ICE", "AAPL", SecurityType.Equity, "ice")]
public void ValidateMarketArguments(string market, string ticker, SecurityType securityType, string expectedMarket, bool skipConfigMarket = false)
{
Config.Set("data-type", "Trade");
Config.Set("resolution", "Daily");
Config.Set("security-type", $"{securityType}");
Config.Set("tickers", $"{{\"{ticker}\": \"\"}}");
Config.Set("start-date", "20240101");
Config.Set("end-date", "20240202");
if (!skipConfigMarket)
{
Config.Set("market", market);
}
var dataDownloadConfig = new DataDownloadConfig();
Assert.That(dataDownloadConfig.MarketName, Is.EqualTo(expectedMarket));
Config.Reset();
}
}
}