[CI] Fixed esplora blockchain tests in CI - #430

Merged
notmandatory merged 4 commits into
bitcoindevkit:masterfrom
rajarshimaitra:esplora-fix
Sep 14, 2021
Merged

[CI] Fixed esplora blockchain tests in CI#430
notmandatory merged 4 commits into
bitcoindevkit:masterfrom
rajarshimaitra:esplora-fix

Conversation

@rajarshimaitra

@rajarshimaitrarajarshimaitra commented Aug 30, 2021

Copy link
Copy Markdown
Contributor

Description

Fixes#431 and esplora blockchain test skips in CI

Notes to the reviewers

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

Bugfixes:

  • I'm linking the issue being fixed by this PR

@rajarshimaitrarajarshimaitra changed the title Esplora fix[bug] Esplora blockchain test fix in CIAug 30, 2021
@rajarshimaitrarajarshimaitra changed the title [bug] Esplora blockchain test fix in CI[Fix] Fixed esplora blockchain tests in CIAug 30, 2021
@rajarshimaitrarajarshimaitra changed the title [Fix] Fixed esplora blockchain tests in CI[CI] Fixed esplora blockchain tests in CIAug 30, 2021

@notmandatorynotmandatory left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, also checkout related tcharding#2. We should be able to test esplora with ureq and reqwest. If you can incorporate into this PR I'll close the one I did.

Comment threadCargo.toml Outdated
@rajarshimaitra

rajarshimaitra commented Aug 31, 2021

Copy link
Copy Markdown
ContributorAuthor

Updated with suggested refactors and async changes.

Rearranged the commits.

Moved out tls changes.

@notmandatory

Copy link
Copy Markdown
Member

ACK 2caa590

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

Merging #430 (2caa590) into master (721748e) will decrease coverage by 0.45%.
The diff coverage is n/a.

❗ Current head 2caa590 differs from pull request most recent head 9967045. Consider uploading reports for the commit 9967045 to get more accurate results
Impacted file tree graph

@@ Coverage Diff @@## master #430 +/- ##
==========================================
- Coverage 73.07% 72.62% -0.46% 
==========================================
Files 34 34 Lines 7399 7419 +20 ==========================================
- Hits 5407 5388 -19 - Misses 1992 2031 +39 
Impacted FilesCoverage Δ
src/blockchain/mod.rs0.00% <ø> (ø)
src/keys/bip39.rs97.18% <0.00%> (-2.82%)⬇️
src/wallet/export.rs86.98% <0.00%> (-1.37%)⬇️
src/descriptor/policy.rs70.17% <0.00%> (-1.00%)⬇️
src/descriptor/dsl.rs91.49% <0.00%> (-0.81%)⬇️
src/wallet/tx_builder.rs91.42% <0.00%> (-0.79%)⬇️
src/wallet/mod.rs96.48% <0.00%> (-0.54%)⬇️
src/keys/mod.rs90.67% <0.00%> (-0.52%)⬇️
src/wallet/coin_selection.rs96.60% <0.00%> (-0.23%)⬇️
src/lib.rs85.20% <0.00%> (ø)
... and 11 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 721748e...9967045. Read the comment docs.

@tchardingtcharding left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for looking into this. I'm glad to see the things I missed in CI being remedied, however I'm not super fond of the re-introduction of hard dependency on tokio - seems like a step backwards to me.

- name: esplora
features: test-esplora,use-esplora-reqwest
- name: esplora
features: test-esplora,use-esplora-ureq

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line has trailing whitespace.

run: cargo test --features test-${{ matrix.blockchain.name }} ${{ matrix.blockchain.name }}::bdk_blockchain_tests

run: cargo test --no-default-features --features ${{ matrix.blockchain.features }} ${{ matrix.blockchain.name }}::bdk_blockchain_tests

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line has trailing whitespace.

Comment threadCargo.toml

# Platform-specific dependencies
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tokio = { version = "1", features = ["rt"] }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please correct me if I'm wrong, but this PR re-introduces a hard dependency on tokio just so we can test esplora-reqwest feature, that seems like a bad choice to me. A user of bdk that wishes to use reqwest will always be using async, why do we want to introduce a hard dependency on tokio just to be able to test in a manner that the library will not be used?

The esplora-reqwest feature can be tested coupled with either async-interface feature or using WASM target.


fn get_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error> {
Ok(self.url_client._get_tx(txid).await?)
Ok(await_or_block!(self.url_client._get_tx(txid))?)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not like this usage of await_or_block because there is no reason to use reqwest in a blocking environment, we have ureq for that.

@tchardingtcharding mentioned this pull request Aug 31, 2021
6 tasks
@tcharding

Copy link
Copy Markdown
Contributor

All my comments are resolved by the implementation in #433, please see if you have any concerns with that approach @rajarshimaitra. Thanks.

@notmandatory

Copy link
Copy Markdown
Member

@tcharding@LLFourn as @rajarshimaitra noted on #433 even if this PR isn't the final solution it will unblock some other work (bitcoindevkit/bdk-cli#41 and #429). Also it's more of a roll back to how the esplora::bdk_blockchain_tests used to work before ureq was introduced. Do you guys have any objection to merging this now while you work on a cleaner solution?

@tcharding

Copy link
Copy Markdown
Contributor

@tcharding@LLFourn as @rajarshimaitra noted on #433 even if this PR isn't the final solution it will unblock some other work (bitcoindevkit/bdk-cli#41 and #429). Also it's more of a roll back to how the esplora::bdk_blockchain_tests used to work before ureq was introduced. Do you guys have any objection to merging this now while you work on a cleaner solution?

Don't stop the progress on my account :)

- Changed to local bdk-macro
- Added back tokio
- Update esplora-reqwest and test-esplora feature guards
- add back await_or_block! to bdk-macros
- use await_or_block! in reqwest tests
- Fix esplora module level feature flag
- Move esplora blockchain tests to module, to cover for both variants
@notmandatory
notmandatory merged commit 10b53a5 into bitcoindevkit:masterSep 14, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Esplora reqwest blockchain tests are failing

4 participants

@rajarshimaitra@notmandatory@codecov-commenter@tcharding
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

[CI] Fixed esplora blockchain tests in CI - #430

Merged
notmandatory merged 4 commits into
bitcoindevkit:masterfrom
rajarshimaitra:esplora-fix
Sep 14, 2021
Merged

[CI] Fixed esplora blockchain tests in CI#430
notmandatory merged 4 commits into
bitcoindevkit:masterfrom
rajarshimaitra:esplora-fix

Conversation

@rajarshimaitra

@rajarshimaitrarajarshimaitra commented Aug 30, 2021

Copy link
Copy Markdown
Contributor

Description

Fixes#431 and esplora blockchain test skips in CI

Notes to the reviewers

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

Bugfixes:

  • I'm linking the issue being fixed by this PR

@rajarshimaitrarajarshimaitra changed the title Esplora fix[bug] Esplora blockchain test fix in CIAug 30, 2021
@rajarshimaitrarajarshimaitra changed the title [bug] Esplora blockchain test fix in CI[Fix] Fixed esplora blockchain tests in CIAug 30, 2021
@rajarshimaitrarajarshimaitra changed the title [Fix] Fixed esplora blockchain tests in CI[CI] Fixed esplora blockchain tests in CIAug 30, 2021

@notmandatorynotmandatory left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, also checkout related tcharding#2. We should be able to test esplora with ureq and reqwest. If you can incorporate into this PR I'll close the one I did.

Comment threadCargo.toml Outdated
@rajarshimaitra

rajarshimaitra commented Aug 31, 2021

Copy link
Copy Markdown
ContributorAuthor

Updated with suggested refactors and async changes.

Rearranged the commits.

Moved out tls changes.

@notmandatory

Copy link
Copy Markdown
Member

ACK 2caa590

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

Merging #430 (2caa590) into master (721748e) will decrease coverage by 0.45%.
The diff coverage is n/a.

❗ Current head 2caa590 differs from pull request most recent head 9967045. Consider uploading reports for the commit 9967045 to get more accurate results
Impacted file tree graph

@@ Coverage Diff @@## master #430 +/- ##
==========================================
- Coverage 73.07% 72.62% -0.46% 
==========================================
Files 34 34 Lines 7399 7419 +20 ==========================================
- Hits 5407 5388 -19 - Misses 1992 2031 +39 
Impacted FilesCoverage Δ
src/blockchain/mod.rs0.00% <ø> (ø)
src/keys/bip39.rs97.18% <0.00%> (-2.82%)⬇️
src/wallet/export.rs86.98% <0.00%> (-1.37%)⬇️
src/descriptor/policy.rs70.17% <0.00%> (-1.00%)⬇️
src/descriptor/dsl.rs91.49% <0.00%> (-0.81%)⬇️
src/wallet/tx_builder.rs91.42% <0.00%> (-0.79%)⬇️
src/wallet/mod.rs96.48% <0.00%> (-0.54%)⬇️
src/keys/mod.rs90.67% <0.00%> (-0.52%)⬇️
src/wallet/coin_selection.rs96.60% <0.00%> (-0.23%)⬇️
src/lib.rs85.20% <0.00%> (ø)
... and 11 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 721748e...9967045. Read the comment docs.

@tchardingtcharding left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for looking into this. I'm glad to see the things I missed in CI being remedied, however I'm not super fond of the re-introduction of hard dependency on tokio - seems like a step backwards to me.

- name: esplora
features: test-esplora,use-esplora-reqwest
- name: esplora
features: test-esplora,use-esplora-ureq

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line has trailing whitespace.

run: cargo test --features test-${{ matrix.blockchain.name }} ${{ matrix.blockchain.name }}::bdk_blockchain_tests

run: cargo test --no-default-features --features ${{ matrix.blockchain.features }} ${{ matrix.blockchain.name }}::bdk_blockchain_tests

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line has trailing whitespace.

Comment threadCargo.toml

# Platform-specific dependencies
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tokio = { version = "1", features = ["rt"] }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please correct me if I'm wrong, but this PR re-introduces a hard dependency on tokio just so we can test esplora-reqwest feature, that seems like a bad choice to me. A user of bdk that wishes to use reqwest will always be using async, why do we want to introduce a hard dependency on tokio just to be able to test in a manner that the library will not be used?

The esplora-reqwest feature can be tested coupled with either async-interface feature or using WASM target.


fn get_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error> {
Ok(self.url_client._get_tx(txid).await?)
Ok(await_or_block!(self.url_client._get_tx(txid))?)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not like this usage of await_or_block because there is no reason to use reqwest in a blocking environment, we have ureq for that.

@tchardingtcharding mentioned this pull request Aug 31, 2021
6 tasks
@tcharding

Copy link
Copy Markdown
Contributor

All my comments are resolved by the implementation in #433, please see if you have any concerns with that approach @rajarshimaitra. Thanks.

@notmandatory

Copy link
Copy Markdown
Member

@tcharding@LLFourn as @rajarshimaitra noted on #433 even if this PR isn't the final solution it will unblock some other work (bitcoindevkit/bdk-cli#41 and #429). Also it's more of a roll back to how the esplora::bdk_blockchain_tests used to work before ureq was introduced. Do you guys have any objection to merging this now while you work on a cleaner solution?

@tcharding

Copy link
Copy Markdown
Contributor

@tcharding@LLFourn as @rajarshimaitra noted on #433 even if this PR isn't the final solution it will unblock some other work (bitcoindevkit/bdk-cli#41 and #429). Also it's more of a roll back to how the esplora::bdk_blockchain_tests used to work before ureq was introduced. Do you guys have any objection to merging this now while you work on a cleaner solution?

Don't stop the progress on my account :)

- Changed to local bdk-macro
- Added back tokio
- Update esplora-reqwest and test-esplora feature guards
- add back await_or_block! to bdk-macros
- use await_or_block! in reqwest tests
- Fix esplora module level feature flag
- Move esplora blockchain tests to module, to cover for both variants
@notmandatory
notmandatory merged commit 10b53a5 into bitcoindevkit:masterSep 14, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Esplora reqwest blockchain tests are failing

4 participants

@rajarshimaitra@notmandatory@codecov-commenter@tcharding
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[CI] Fixed esplora blockchain tests in CI - #430

Merged
notmandatory merged 4 commits into
bitcoindevkit:masterfrom
rajarshimaitra:esplora-fix
Sep 14, 2021
Merged

[CI] Fixed esplora blockchain tests in CI#430
notmandatory merged 4 commits into
bitcoindevkit:masterfrom
rajarshimaitra:esplora-fix

Conversation

@rajarshimaitra

@rajarshimaitrarajarshimaitra commented Aug 30, 2021

Copy link
Copy Markdown
Contributor

Description

Fixes#431 and esplora blockchain test skips in CI

Notes to the reviewers

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

Bugfixes:

  • I'm linking the issue being fixed by this PR

@rajarshimaitrarajarshimaitra changed the title Esplora fix[bug] Esplora blockchain test fix in CIAug 30, 2021
@rajarshimaitrarajarshimaitra changed the title [bug] Esplora blockchain test fix in CI[Fix] Fixed esplora blockchain tests in CIAug 30, 2021
@rajarshimaitrarajarshimaitra changed the title [Fix] Fixed esplora blockchain tests in CI[CI] Fixed esplora blockchain tests in CIAug 30, 2021

@notmandatorynotmandatory left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, also checkout related tcharding#2. We should be able to test esplora with ureq and reqwest. If you can incorporate into this PR I'll close the one I did.

Comment threadCargo.toml Outdated
@rajarshimaitra

rajarshimaitra commented Aug 31, 2021

Copy link
Copy Markdown
ContributorAuthor

Updated with suggested refactors and async changes.

Rearranged the commits.

Moved out tls changes.

@notmandatory

Copy link
Copy Markdown
Member

ACK 2caa590

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

Merging #430 (2caa590) into master (721748e) will decrease coverage by 0.45%.
The diff coverage is n/a.

❗ Current head 2caa590 differs from pull request most recent head 9967045. Consider uploading reports for the commit 9967045 to get more accurate results
Impacted file tree graph

@@ Coverage Diff @@## master #430 +/- ##
==========================================
- Coverage 73.07% 72.62% -0.46% 
==========================================
Files 34 34 Lines 7399 7419 +20 ==========================================
- Hits 5407 5388 -19 - Misses 1992 2031 +39 
Impacted FilesCoverage Δ
src/blockchain/mod.rs0.00% <ø> (ø)
src/keys/bip39.rs97.18% <0.00%> (-2.82%)⬇️
src/wallet/export.rs86.98% <0.00%> (-1.37%)⬇️
src/descriptor/policy.rs70.17% <0.00%> (-1.00%)⬇️
src/descriptor/dsl.rs91.49% <0.00%> (-0.81%)⬇️
src/wallet/tx_builder.rs91.42% <0.00%> (-0.79%)⬇️
src/wallet/mod.rs96.48% <0.00%> (-0.54%)⬇️
src/keys/mod.rs90.67% <0.00%> (-0.52%)⬇️
src/wallet/coin_selection.rs96.60% <0.00%> (-0.23%)⬇️
src/lib.rs85.20% <0.00%> (ø)
... and 11 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 721748e...9967045. Read the comment docs.

@tchardingtcharding left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for looking into this. I'm glad to see the things I missed in CI being remedied, however I'm not super fond of the re-introduction of hard dependency on tokio - seems like a step backwards to me.

- name: esplora
features: test-esplora,use-esplora-reqwest
- name: esplora
features: test-esplora,use-esplora-ureq

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line has trailing whitespace.

run: cargo test --features test-${{ matrix.blockchain.name }} ${{ matrix.blockchain.name }}::bdk_blockchain_tests

run: cargo test --no-default-features --features ${{ matrix.blockchain.features }} ${{ matrix.blockchain.name }}::bdk_blockchain_tests

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line has trailing whitespace.

Comment threadCargo.toml

# Platform-specific dependencies
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tokio = { version = "1", features = ["rt"] }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please correct me if I'm wrong, but this PR re-introduces a hard dependency on tokio just so we can test esplora-reqwest feature, that seems like a bad choice to me. A user of bdk that wishes to use reqwest will always be using async, why do we want to introduce a hard dependency on tokio just to be able to test in a manner that the library will not be used?

The esplora-reqwest feature can be tested coupled with either async-interface feature or using WASM target.


fn get_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error> {
Ok(self.url_client._get_tx(txid).await?)
Ok(await_or_block!(self.url_client._get_tx(txid))?)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not like this usage of await_or_block because there is no reason to use reqwest in a blocking environment, we have ureq for that.

@tchardingtcharding mentioned this pull request Aug 31, 2021
6 tasks
@tcharding

Copy link
Copy Markdown
Contributor

All my comments are resolved by the implementation in #433, please see if you have any concerns with that approach @rajarshimaitra. Thanks.

@notmandatory

Copy link
Copy Markdown
Member

@tcharding@LLFourn as @rajarshimaitra noted on #433 even if this PR isn't the final solution it will unblock some other work (bitcoindevkit/bdk-cli#41 and #429). Also it's more of a roll back to how the esplora::bdk_blockchain_tests used to work before ureq was introduced. Do you guys have any objection to merging this now while you work on a cleaner solution?

@tcharding

Copy link
Copy Markdown
Contributor

@tcharding@LLFourn as @rajarshimaitra noted on #433 even if this PR isn't the final solution it will unblock some other work (bitcoindevkit/bdk-cli#41 and #429). Also it's more of a roll back to how the esplora::bdk_blockchain_tests used to work before ureq was introduced. Do you guys have any objection to merging this now while you work on a cleaner solution?

Don't stop the progress on my account :)

- Changed to local bdk-macro
- Added back tokio
- Update esplora-reqwest and test-esplora feature guards
- add back await_or_block! to bdk-macros
- use await_or_block! in reqwest tests
- Fix esplora module level feature flag
- Move esplora blockchain tests to module, to cover for both variants
@notmandatory
notmandatory merged commit 10b53a5 into bitcoindevkit:masterSep 14, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Esplora reqwest blockchain tests are failing

4 participants

@rajarshimaitra@notmandatory@codecov-commenter@tcharding
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[CI] Fixed esplora blockchain tests in CI - #430

Merged
notmandatory merged 4 commits into
bitcoindevkit:masterfrom
rajarshimaitra:esplora-fix
Sep 14, 2021
Merged

[CI] Fixed esplora blockchain tests in CI#430
notmandatory merged 4 commits into
bitcoindevkit:masterfrom
rajarshimaitra:esplora-fix

Conversation

@rajarshimaitra

@rajarshimaitrarajarshimaitra commented Aug 30, 2021

Copy link
Copy Markdown
Contributor

Description

Fixes#431 and esplora blockchain test skips in CI

Notes to the reviewers

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

Bugfixes:

  • I'm linking the issue being fixed by this PR

@rajarshimaitrarajarshimaitra changed the title Esplora fix[bug] Esplora blockchain test fix in CIAug 30, 2021
@rajarshimaitrarajarshimaitra changed the title [bug] Esplora blockchain test fix in CI[Fix] Fixed esplora blockchain tests in CIAug 30, 2021
@rajarshimaitrarajarshimaitra changed the title [Fix] Fixed esplora blockchain tests in CI[CI] Fixed esplora blockchain tests in CIAug 30, 2021

@notmandatorynotmandatory left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, also checkout related tcharding#2. We should be able to test esplora with ureq and reqwest. If you can incorporate into this PR I'll close the one I did.

Comment threadCargo.toml Outdated
@rajarshimaitra

rajarshimaitra commented Aug 31, 2021

Copy link
Copy Markdown
ContributorAuthor

Updated with suggested refactors and async changes.

Rearranged the commits.

Moved out tls changes.

@notmandatory

Copy link
Copy Markdown
Member

ACK 2caa590

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

Merging #430 (2caa590) into master (721748e) will decrease coverage by 0.45%.
The diff coverage is n/a.

❗ Current head 2caa590 differs from pull request most recent head 9967045. Consider uploading reports for the commit 9967045 to get more accurate results
Impacted file tree graph

@@ Coverage Diff @@## master #430 +/- ##
==========================================
- Coverage 73.07% 72.62% -0.46% 
==========================================
Files 34 34 Lines 7399 7419 +20 ==========================================
- Hits 5407 5388 -19 - Misses 1992 2031 +39 
Impacted FilesCoverage Δ
src/blockchain/mod.rs0.00% <ø> (ø)
src/keys/bip39.rs97.18% <0.00%> (-2.82%)⬇️
src/wallet/export.rs86.98% <0.00%> (-1.37%)⬇️
src/descriptor/policy.rs70.17% <0.00%> (-1.00%)⬇️
src/descriptor/dsl.rs91.49% <0.00%> (-0.81%)⬇️
src/wallet/tx_builder.rs91.42% <0.00%> (-0.79%)⬇️
src/wallet/mod.rs96.48% <0.00%> (-0.54%)⬇️
src/keys/mod.rs90.67% <0.00%> (-0.52%)⬇️
src/wallet/coin_selection.rs96.60% <0.00%> (-0.23%)⬇️
src/lib.rs85.20% <0.00%> (ø)
... and 11 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 721748e...9967045. Read the comment docs.

@tchardingtcharding left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for looking into this. I'm glad to see the things I missed in CI being remedied, however I'm not super fond of the re-introduction of hard dependency on tokio - seems like a step backwards to me.

- name: esplora
features: test-esplora,use-esplora-reqwest
- name: esplora
features: test-esplora,use-esplora-ureq

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line has trailing whitespace.

run: cargo test --features test-${{ matrix.blockchain.name }} ${{ matrix.blockchain.name }}::bdk_blockchain_tests

run: cargo test --no-default-features --features ${{ matrix.blockchain.features }} ${{ matrix.blockchain.name }}::bdk_blockchain_tests

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line has trailing whitespace.

Comment threadCargo.toml

# Platform-specific dependencies
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tokio = { version = "1", features = ["rt"] }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please correct me if I'm wrong, but this PR re-introduces a hard dependency on tokio just so we can test esplora-reqwest feature, that seems like a bad choice to me. A user of bdk that wishes to use reqwest will always be using async, why do we want to introduce a hard dependency on tokio just to be able to test in a manner that the library will not be used?

The esplora-reqwest feature can be tested coupled with either async-interface feature or using WASM target.


fn get_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error> {
Ok(self.url_client._get_tx(txid).await?)
Ok(await_or_block!(self.url_client._get_tx(txid))?)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not like this usage of await_or_block because there is no reason to use reqwest in a blocking environment, we have ureq for that.

@tchardingtcharding mentioned this pull request Aug 31, 2021
6 tasks
@tcharding

Copy link
Copy Markdown
Contributor

All my comments are resolved by the implementation in #433, please see if you have any concerns with that approach @rajarshimaitra. Thanks.

@notmandatory

Copy link
Copy Markdown
Member

@tcharding@LLFourn as @rajarshimaitra noted on #433 even if this PR isn't the final solution it will unblock some other work (bitcoindevkit/bdk-cli#41 and #429). Also it's more of a roll back to how the esplora::bdk_blockchain_tests used to work before ureq was introduced. Do you guys have any objection to merging this now while you work on a cleaner solution?

@tcharding

Copy link
Copy Markdown
Contributor

@tcharding@LLFourn as @rajarshimaitra noted on #433 even if this PR isn't the final solution it will unblock some other work (bitcoindevkit/bdk-cli#41 and #429). Also it's more of a roll back to how the esplora::bdk_blockchain_tests used to work before ureq was introduced. Do you guys have any objection to merging this now while you work on a cleaner solution?

Don't stop the progress on my account :)

- Changed to local bdk-macro
- Added back tokio
- Update esplora-reqwest and test-esplora feature guards
- add back await_or_block! to bdk-macros
- use await_or_block! in reqwest tests
- Fix esplora module level feature flag
- Move esplora blockchain tests to module, to cover for both variants
@notmandatory
notmandatory merged commit 10b53a5 into bitcoindevkit:masterSep 14, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Esplora reqwest blockchain tests are failing

4 participants

@rajarshimaitra@notmandatory@codecov-commenter@tcharding
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

[CI] Fixed esplora blockchain tests in CI - #430

Merged
notmandatory merged 4 commits into
bitcoindevkit:masterfrom
rajarshimaitra:esplora-fix
Sep 14, 2021
Merged

[CI] Fixed esplora blockchain tests in CI#430
notmandatory merged 4 commits into
bitcoindevkit:masterfrom
rajarshimaitra:esplora-fix

Conversation

@rajarshimaitra

@rajarshimaitrarajarshimaitra commented Aug 30, 2021

Copy link
Copy Markdown
Contributor

Description

Fixes#431 and esplora blockchain test skips in CI

Notes to the reviewers

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

Bugfixes:

  • I'm linking the issue being fixed by this PR

@rajarshimaitrarajarshimaitra changed the title Esplora fix[bug] Esplora blockchain test fix in CIAug 30, 2021
@rajarshimaitrarajarshimaitra changed the title [bug] Esplora blockchain test fix in CI[Fix] Fixed esplora blockchain tests in CIAug 30, 2021
@rajarshimaitrarajarshimaitra changed the title [Fix] Fixed esplora blockchain tests in CI[CI] Fixed esplora blockchain tests in CIAug 30, 2021

@notmandatorynotmandatory left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, also checkout related tcharding#2. We should be able to test esplora with ureq and reqwest. If you can incorporate into this PR I'll close the one I did.

Comment threadCargo.toml Outdated
@rajarshimaitra

rajarshimaitra commented Aug 31, 2021

Copy link
Copy Markdown
ContributorAuthor

Updated with suggested refactors and async changes.

Rearranged the commits.

Moved out tls changes.

@notmandatory

Copy link
Copy Markdown
Member

ACK 2caa590

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

Merging #430 (2caa590) into master (721748e) will decrease coverage by 0.45%.
The diff coverage is n/a.

❗ Current head 2caa590 differs from pull request most recent head 9967045. Consider uploading reports for the commit 9967045 to get more accurate results
Impacted file tree graph

@@ Coverage Diff @@## master #430 +/- ##
==========================================
- Coverage 73.07% 72.62% -0.46% 
==========================================
Files 34 34 Lines 7399 7419 +20 ==========================================
- Hits 5407 5388 -19 - Misses 1992 2031 +39 
Impacted FilesCoverage Δ
src/blockchain/mod.rs0.00% <ø> (ø)
src/keys/bip39.rs97.18% <0.00%> (-2.82%)⬇️
src/wallet/export.rs86.98% <0.00%> (-1.37%)⬇️
src/descriptor/policy.rs70.17% <0.00%> (-1.00%)⬇️
src/descriptor/dsl.rs91.49% <0.00%> (-0.81%)⬇️
src/wallet/tx_builder.rs91.42% <0.00%> (-0.79%)⬇️
src/wallet/mod.rs96.48% <0.00%> (-0.54%)⬇️
src/keys/mod.rs90.67% <0.00%> (-0.52%)⬇️
src/wallet/coin_selection.rs96.60% <0.00%> (-0.23%)⬇️
src/lib.rs85.20% <0.00%> (ø)
... and 11 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 721748e...9967045. Read the comment docs.

@tchardingtcharding left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for looking into this. I'm glad to see the things I missed in CI being remedied, however I'm not super fond of the re-introduction of hard dependency on tokio - seems like a step backwards to me.

- name: esplora
features: test-esplora,use-esplora-reqwest
- name: esplora
features: test-esplora,use-esplora-ureq

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line has trailing whitespace.

run: cargo test --features test-${{ matrix.blockchain.name }} ${{ matrix.blockchain.name }}::bdk_blockchain_tests

run: cargo test --no-default-features --features ${{ matrix.blockchain.features }} ${{ matrix.blockchain.name }}::bdk_blockchain_tests

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line has trailing whitespace.

Comment threadCargo.toml

# Platform-specific dependencies
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tokio = { version = "1", features = ["rt"] }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please correct me if I'm wrong, but this PR re-introduces a hard dependency on tokio just so we can test esplora-reqwest feature, that seems like a bad choice to me. A user of bdk that wishes to use reqwest will always be using async, why do we want to introduce a hard dependency on tokio just to be able to test in a manner that the library will not be used?

The esplora-reqwest feature can be tested coupled with either async-interface feature or using WASM target.


fn get_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error> {
Ok(self.url_client._get_tx(txid).await?)
Ok(await_or_block!(self.url_client._get_tx(txid))?)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not like this usage of await_or_block because there is no reason to use reqwest in a blocking environment, we have ureq for that.

@tchardingtcharding mentioned this pull request Aug 31, 2021
6 tasks
@tcharding

Copy link
Copy Markdown
Contributor

All my comments are resolved by the implementation in #433, please see if you have any concerns with that approach @rajarshimaitra. Thanks.

@notmandatory

Copy link
Copy Markdown
Member

@tcharding@LLFourn as @rajarshimaitra noted on #433 even if this PR isn't the final solution it will unblock some other work (bitcoindevkit/bdk-cli#41 and #429). Also it's more of a roll back to how the esplora::bdk_blockchain_tests used to work before ureq was introduced. Do you guys have any objection to merging this now while you work on a cleaner solution?

@tcharding

Copy link
Copy Markdown
Contributor

@tcharding@LLFourn as @rajarshimaitra noted on #433 even if this PR isn't the final solution it will unblock some other work (bitcoindevkit/bdk-cli#41 and #429). Also it's more of a roll back to how the esplora::bdk_blockchain_tests used to work before ureq was introduced. Do you guys have any objection to merging this now while you work on a cleaner solution?

Don't stop the progress on my account :)

- Changed to local bdk-macro
- Added back tokio
- Update esplora-reqwest and test-esplora feature guards
- add back await_or_block! to bdk-macros
- use await_or_block! in reqwest tests
- Fix esplora module level feature flag
- Move esplora blockchain tests to module, to cover for both variants
@notmandatory
notmandatory merged commit 10b53a5 into bitcoindevkit:masterSep 14, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Esplora reqwest blockchain tests are failing

4 participants

@rajarshimaitra@notmandatory@codecov-commenter@tcharding
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[CI] Fixed esplora blockchain tests in CI - #430

Merged
notmandatory merged 4 commits into
bitcoindevkit:masterfrom
rajarshimaitra:esplora-fix
Sep 14, 2021
Merged

[CI] Fixed esplora blockchain tests in CI#430
notmandatory merged 4 commits into
bitcoindevkit:masterfrom
rajarshimaitra:esplora-fix

Conversation

@rajarshimaitra

@rajarshimaitrarajarshimaitra commented Aug 30, 2021

Copy link
Copy Markdown
Contributor

Description

Fixes#431 and esplora blockchain test skips in CI

Notes to the reviewers

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

Bugfixes:

  • I'm linking the issue being fixed by this PR

@rajarshimaitrarajarshimaitra changed the title Esplora fix[bug] Esplora blockchain test fix in CIAug 30, 2021
@rajarshimaitrarajarshimaitra changed the title [bug] Esplora blockchain test fix in CI[Fix] Fixed esplora blockchain tests in CIAug 30, 2021
@rajarshimaitrarajarshimaitra changed the title [Fix] Fixed esplora blockchain tests in CI[CI] Fixed esplora blockchain tests in CIAug 30, 2021

@notmandatorynotmandatory left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, also checkout related tcharding#2. We should be able to test esplora with ureq and reqwest. If you can incorporate into this PR I'll close the one I did.

Comment threadCargo.toml Outdated
@rajarshimaitra

rajarshimaitra commented Aug 31, 2021

Copy link
Copy Markdown
ContributorAuthor

Updated with suggested refactors and async changes.

Rearranged the commits.

Moved out tls changes.

@notmandatory

Copy link
Copy Markdown
Member

ACK 2caa590

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

Merging #430 (2caa590) into master (721748e) will decrease coverage by 0.45%.
The diff coverage is n/a.

❗ Current head 2caa590 differs from pull request most recent head 9967045. Consider uploading reports for the commit 9967045 to get more accurate results
Impacted file tree graph

@@ Coverage Diff @@## master #430 +/- ##
==========================================
- Coverage 73.07% 72.62% -0.46% 
==========================================
Files 34 34 Lines 7399 7419 +20 ==========================================
- Hits 5407 5388 -19 - Misses 1992 2031 +39 
Impacted FilesCoverage Δ
src/blockchain/mod.rs0.00% <ø> (ø)
src/keys/bip39.rs97.18% <0.00%> (-2.82%)⬇️
src/wallet/export.rs86.98% <0.00%> (-1.37%)⬇️
src/descriptor/policy.rs70.17% <0.00%> (-1.00%)⬇️
src/descriptor/dsl.rs91.49% <0.00%> (-0.81%)⬇️
src/wallet/tx_builder.rs91.42% <0.00%> (-0.79%)⬇️
src/wallet/mod.rs96.48% <0.00%> (-0.54%)⬇️
src/keys/mod.rs90.67% <0.00%> (-0.52%)⬇️
src/wallet/coin_selection.rs96.60% <0.00%> (-0.23%)⬇️
src/lib.rs85.20% <0.00%> (ø)
... and 11 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 721748e...9967045. Read the comment docs.

@tchardingtcharding left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for looking into this. I'm glad to see the things I missed in CI being remedied, however I'm not super fond of the re-introduction of hard dependency on tokio - seems like a step backwards to me.

- name: esplora
features: test-esplora,use-esplora-reqwest
- name: esplora
features: test-esplora,use-esplora-ureq

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line has trailing whitespace.

run: cargo test --features test-${{ matrix.blockchain.name }} ${{ matrix.blockchain.name }}::bdk_blockchain_tests

run: cargo test --no-default-features --features ${{ matrix.blockchain.features }} ${{ matrix.blockchain.name }}::bdk_blockchain_tests

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line has trailing whitespace.

Comment threadCargo.toml

# Platform-specific dependencies
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tokio = { version = "1", features = ["rt"] }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please correct me if I'm wrong, but this PR re-introduces a hard dependency on tokio just so we can test esplora-reqwest feature, that seems like a bad choice to me. A user of bdk that wishes to use reqwest will always be using async, why do we want to introduce a hard dependency on tokio just to be able to test in a manner that the library will not be used?

The esplora-reqwest feature can be tested coupled with either async-interface feature or using WASM target.


fn get_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error> {
Ok(self.url_client._get_tx(txid).await?)
Ok(await_or_block!(self.url_client._get_tx(txid))?)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not like this usage of await_or_block because there is no reason to use reqwest in a blocking environment, we have ureq for that.

@tchardingtcharding mentioned this pull request Aug 31, 2021
6 tasks
@tcharding

Copy link
Copy Markdown
Contributor

All my comments are resolved by the implementation in #433, please see if you have any concerns with that approach @rajarshimaitra. Thanks.

@notmandatory

Copy link
Copy Markdown
Member

@tcharding@LLFourn as @rajarshimaitra noted on #433 even if this PR isn't the final solution it will unblock some other work (bitcoindevkit/bdk-cli#41 and #429). Also it's more of a roll back to how the esplora::bdk_blockchain_tests used to work before ureq was introduced. Do you guys have any objection to merging this now while you work on a cleaner solution?

@tcharding

Copy link
Copy Markdown
Contributor

@tcharding@LLFourn as @rajarshimaitra noted on #433 even if this PR isn't the final solution it will unblock some other work (bitcoindevkit/bdk-cli#41 and #429). Also it's more of a roll back to how the esplora::bdk_blockchain_tests used to work before ureq was introduced. Do you guys have any objection to merging this now while you work on a cleaner solution?

Don't stop the progress on my account :)

- Changed to local bdk-macro
- Added back tokio
- Update esplora-reqwest and test-esplora feature guards
- add back await_or_block! to bdk-macros
- use await_or_block! in reqwest tests
- Fix esplora module level feature flag
- Move esplora blockchain tests to module, to cover for both variants
@notmandatory
notmandatory merged commit 10b53a5 into bitcoindevkit:masterSep 14, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Esplora reqwest blockchain tests are failing

4 participants

@rajarshimaitra@notmandatory@codecov-commenter@tcharding
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

[CI] Fixed esplora blockchain tests in CI - #430

Merged
notmandatory merged 4 commits into
bitcoindevkit:masterfrom
rajarshimaitra:esplora-fix
Sep 14, 2021
Merged

[CI] Fixed esplora blockchain tests in CI#430
notmandatory merged 4 commits into
bitcoindevkit:masterfrom
rajarshimaitra:esplora-fix

Conversation

@rajarshimaitra

@rajarshimaitrarajarshimaitra commented Aug 30, 2021

Copy link
Copy Markdown
Contributor

Description

Fixes#431 and esplora blockchain test skips in CI

Notes to the reviewers

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

Bugfixes:

  • I'm linking the issue being fixed by this PR

@rajarshimaitrarajarshimaitra changed the title Esplora fix[bug] Esplora blockchain test fix in CIAug 30, 2021
@rajarshimaitrarajarshimaitra changed the title [bug] Esplora blockchain test fix in CI[Fix] Fixed esplora blockchain tests in CIAug 30, 2021
@rajarshimaitrarajarshimaitra changed the title [Fix] Fixed esplora blockchain tests in CI[CI] Fixed esplora blockchain tests in CIAug 30, 2021

@notmandatorynotmandatory left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, also checkout related tcharding#2. We should be able to test esplora with ureq and reqwest. If you can incorporate into this PR I'll close the one I did.

Comment threadCargo.toml Outdated
@rajarshimaitra

rajarshimaitra commented Aug 31, 2021

Copy link
Copy Markdown
ContributorAuthor

Updated with suggested refactors and async changes.

Rearranged the commits.

Moved out tls changes.

@notmandatory

Copy link
Copy Markdown
Member

ACK 2caa590

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

Merging #430 (2caa590) into master (721748e) will decrease coverage by 0.45%.
The diff coverage is n/a.

❗ Current head 2caa590 differs from pull request most recent head 9967045. Consider uploading reports for the commit 9967045 to get more accurate results
Impacted file tree graph

@@ Coverage Diff @@## master #430 +/- ##
==========================================
- Coverage 73.07% 72.62% -0.46% 
==========================================
Files 34 34 Lines 7399 7419 +20 ==========================================
- Hits 5407 5388 -19 - Misses 1992 2031 +39 
Impacted FilesCoverage Δ
src/blockchain/mod.rs0.00% <ø> (ø)
src/keys/bip39.rs97.18% <0.00%> (-2.82%)⬇️
src/wallet/export.rs86.98% <0.00%> (-1.37%)⬇️
src/descriptor/policy.rs70.17% <0.00%> (-1.00%)⬇️
src/descriptor/dsl.rs91.49% <0.00%> (-0.81%)⬇️
src/wallet/tx_builder.rs91.42% <0.00%> (-0.79%)⬇️
src/wallet/mod.rs96.48% <0.00%> (-0.54%)⬇️
src/keys/mod.rs90.67% <0.00%> (-0.52%)⬇️
src/wallet/coin_selection.rs96.60% <0.00%> (-0.23%)⬇️
src/lib.rs85.20% <0.00%> (ø)
... and 11 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 721748e...9967045. Read the comment docs.

@tchardingtcharding left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for looking into this. I'm glad to see the things I missed in CI being remedied, however I'm not super fond of the re-introduction of hard dependency on tokio - seems like a step backwards to me.

- name: esplora
features: test-esplora,use-esplora-reqwest
- name: esplora
features: test-esplora,use-esplora-ureq

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line has trailing whitespace.

run: cargo test --features test-${{ matrix.blockchain.name }} ${{ matrix.blockchain.name }}::bdk_blockchain_tests

run: cargo test --no-default-features --features ${{ matrix.blockchain.features }} ${{ matrix.blockchain.name }}::bdk_blockchain_tests

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line has trailing whitespace.

Comment threadCargo.toml

# Platform-specific dependencies
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tokio = { version = "1", features = ["rt"] }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please correct me if I'm wrong, but this PR re-introduces a hard dependency on tokio just so we can test esplora-reqwest feature, that seems like a bad choice to me. A user of bdk that wishes to use reqwest will always be using async, why do we want to introduce a hard dependency on tokio just to be able to test in a manner that the library will not be used?

The esplora-reqwest feature can be tested coupled with either async-interface feature or using WASM target.


fn get_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error> {
Ok(self.url_client._get_tx(txid).await?)
Ok(await_or_block!(self.url_client._get_tx(txid))?)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not like this usage of await_or_block because there is no reason to use reqwest in a blocking environment, we have ureq for that.

@tchardingtcharding mentioned this pull request Aug 31, 2021
6 tasks
@tcharding

Copy link
Copy Markdown
Contributor

All my comments are resolved by the implementation in #433, please see if you have any concerns with that approach @rajarshimaitra. Thanks.

@notmandatory

Copy link
Copy Markdown
Member

@tcharding@LLFourn as @rajarshimaitra noted on #433 even if this PR isn't the final solution it will unblock some other work (bitcoindevkit/bdk-cli#41 and #429). Also it's more of a roll back to how the esplora::bdk_blockchain_tests used to work before ureq was introduced. Do you guys have any objection to merging this now while you work on a cleaner solution?

@tcharding

Copy link
Copy Markdown
Contributor

@tcharding@LLFourn as @rajarshimaitra noted on #433 even if this PR isn't the final solution it will unblock some other work (bitcoindevkit/bdk-cli#41 and #429). Also it's more of a roll back to how the esplora::bdk_blockchain_tests used to work before ureq was introduced. Do you guys have any objection to merging this now while you work on a cleaner solution?

Don't stop the progress on my account :)

- Changed to local bdk-macro
- Added back tokio
- Update esplora-reqwest and test-esplora feature guards
- add back await_or_block! to bdk-macros
- use await_or_block! in reqwest tests
- Fix esplora module level feature flag
- Move esplora blockchain tests to module, to cover for both variants
@notmandatory
notmandatory merged commit 10b53a5 into bitcoindevkit:masterSep 14, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Esplora reqwest blockchain tests are failing

4 participants

@rajarshimaitra@notmandatory@codecov-commenter@tcharding
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

[CI] Fixed esplora blockchain tests in CI - #430

Merged
notmandatory merged 4 commits into
bitcoindevkit:masterfrom
rajarshimaitra:esplora-fix
Sep 14, 2021
Merged

[CI] Fixed esplora blockchain tests in CI#430
notmandatory merged 4 commits into
bitcoindevkit:masterfrom
rajarshimaitra:esplora-fix

Conversation

@rajarshimaitra

@rajarshimaitrarajarshimaitra commented Aug 30, 2021

Copy link
Copy Markdown
Contributor

Description

Fixes#431 and esplora blockchain test skips in CI

Notes to the reviewers

Checklists

All Submissions:

  • I've signed all my commits
  • I followed the contribution guidelines
  • I ran cargo fmt and cargo clippy before committing

Bugfixes:

  • I'm linking the issue being fixed by this PR

@rajarshimaitrarajarshimaitra changed the title Esplora fix[bug] Esplora blockchain test fix in CIAug 30, 2021
@rajarshimaitrarajarshimaitra changed the title [bug] Esplora blockchain test fix in CI[Fix] Fixed esplora blockchain tests in CIAug 30, 2021
@rajarshimaitrarajarshimaitra changed the title [Fix] Fixed esplora blockchain tests in CI[CI] Fixed esplora blockchain tests in CIAug 30, 2021

@notmandatorynotmandatory left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, also checkout related tcharding#2. We should be able to test esplora with ureq and reqwest. If you can incorporate into this PR I'll close the one I did.

Comment threadCargo.toml Outdated
@rajarshimaitra

rajarshimaitra commented Aug 31, 2021

Copy link
Copy Markdown
ContributorAuthor

Updated with suggested refactors and async changes.

Rearranged the commits.

Moved out tls changes.

@notmandatory

Copy link
Copy Markdown
Member

ACK 2caa590

@codecov-commenter

Copy link
Copy Markdown

Codecov Report

Merging #430 (2caa590) into master (721748e) will decrease coverage by 0.45%.
The diff coverage is n/a.

❗ Current head 2caa590 differs from pull request most recent head 9967045. Consider uploading reports for the commit 9967045 to get more accurate results
Impacted file tree graph

@@ Coverage Diff @@## master #430 +/- ##
==========================================
- Coverage 73.07% 72.62% -0.46% 
==========================================
Files 34 34 Lines 7399 7419 +20 ==========================================
- Hits 5407 5388 -19 - Misses 1992 2031 +39 
Impacted FilesCoverage Δ
src/blockchain/mod.rs0.00% <ø> (ø)
src/keys/bip39.rs97.18% <0.00%> (-2.82%)⬇️
src/wallet/export.rs86.98% <0.00%> (-1.37%)⬇️
src/descriptor/policy.rs70.17% <0.00%> (-1.00%)⬇️
src/descriptor/dsl.rs91.49% <0.00%> (-0.81%)⬇️
src/wallet/tx_builder.rs91.42% <0.00%> (-0.79%)⬇️
src/wallet/mod.rs96.48% <0.00%> (-0.54%)⬇️
src/keys/mod.rs90.67% <0.00%> (-0.52%)⬇️
src/wallet/coin_selection.rs96.60% <0.00%> (-0.23%)⬇️
src/lib.rs85.20% <0.00%> (ø)
... and 11 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 721748e...9967045. Read the comment docs.

@tchardingtcharding left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for looking into this. I'm glad to see the things I missed in CI being remedied, however I'm not super fond of the re-introduction of hard dependency on tokio - seems like a step backwards to me.

- name: esplora
features: test-esplora,use-esplora-reqwest
- name: esplora
features: test-esplora,use-esplora-ureq

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line has trailing whitespace.

run: cargo test --features test-${{ matrix.blockchain.name }} ${{ matrix.blockchain.name }}::bdk_blockchain_tests

run: cargo test --no-default-features --features ${{ matrix.blockchain.features }} ${{ matrix.blockchain.name }}::bdk_blockchain_tests

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This line has trailing whitespace.

Comment threadCargo.toml

# Platform-specific dependencies
[target.'cfg(not(target_arch = "wasm32"))'.dependencies]
tokio = { version = "1", features = ["rt"] }

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please correct me if I'm wrong, but this PR re-introduces a hard dependency on tokio just so we can test esplora-reqwest feature, that seems like a bad choice to me. A user of bdk that wishes to use reqwest will always be using async, why do we want to introduce a hard dependency on tokio just to be able to test in a manner that the library will not be used?

The esplora-reqwest feature can be tested coupled with either async-interface feature or using WASM target.


fn get_tx(&self, txid: &Txid) -> Result<Option<Transaction>, Error> {
Ok(self.url_client._get_tx(txid).await?)
Ok(await_or_block!(self.url_client._get_tx(txid))?)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not like this usage of await_or_block because there is no reason to use reqwest in a blocking environment, we have ureq for that.

@tchardingtcharding mentioned this pull request Aug 31, 2021
6 tasks
@tcharding

Copy link
Copy Markdown
Contributor

All my comments are resolved by the implementation in #433, please see if you have any concerns with that approach @rajarshimaitra. Thanks.

@notmandatory

Copy link
Copy Markdown
Member

@tcharding@LLFourn as @rajarshimaitra noted on #433 even if this PR isn't the final solution it will unblock some other work (bitcoindevkit/bdk-cli#41 and #429). Also it's more of a roll back to how the esplora::bdk_blockchain_tests used to work before ureq was introduced. Do you guys have any objection to merging this now while you work on a cleaner solution?

@tcharding

Copy link
Copy Markdown
Contributor

@tcharding@LLFourn as @rajarshimaitra noted on #433 even if this PR isn't the final solution it will unblock some other work (bitcoindevkit/bdk-cli#41 and #429). Also it's more of a roll back to how the esplora::bdk_blockchain_tests used to work before ureq was introduced. Do you guys have any objection to merging this now while you work on a cleaner solution?

Don't stop the progress on my account :)

- Changed to local bdk-macro
- Added back tokio
- Update esplora-reqwest and test-esplora feature guards
- add back await_or_block! to bdk-macros
- use await_or_block! in reqwest tests
- Fix esplora module level feature flag
- Move esplora blockchain tests to module, to cover for both variants
@notmandatory
notmandatory merged commit 10b53a5 into bitcoindevkit:masterSep 14, 2021
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Bug] Esplora reqwest blockchain tests are failing

4 participants

@rajarshimaitra@notmandatory@codecov-commenter@tcharding