Added (failing) test for transferring file from one peer to another

This commit is contained in:
Mark Spanbroek 2021-01-12 10:56:37 +01:00 committed by markspanbroek
parent bd29797aba
commit 2471423197
4 changed files with 75 additions and 5 deletions

View File

@ -0,0 +1,22 @@
import pkg/chronos
type
DaggerPeer* = ref object
proc newDaggerPeer*: DaggerPeer =
DaggerPeer()
proc listen*(peer: DaggerPeer, address: TransportAddress) =
discard
proc dial*(peer: DaggerPeer, address: TransportAddress) =
discard
proc upload*(peer: DaggerPeer, input: File): Future[string] {.async.} =
discard
proc download*(peer: DaggerPeer, identifier: string, output: File) {.async.} =
discard
proc close*(peer: DaggerPeer) =
discard

View File

@ -1,4 +1,8 @@
version = "0.1.0" version = "0.1.0"
author = "Dagger Team" author = "Dagger Team"
description = "Dagger Storage Network" description = "Dagger Storage Network"
license = "MIT" license = "MIT"
requires "nim >= 1.4.2 & < 2.0.0"
requires "chronos >= 2.5.2 & < 3.0.0"
requires "asynctest >= 0.2.1 & < 0.3.0"

1
tests/nim.cfg Normal file
View File

@ -0,0 +1 @@
--path:".."

View File

@ -1,6 +1,49 @@
import unittest import std/os
import pkg/asynctest
import pkg/chronos
import pkg/dagger
suite "example": suite "integration":
test "unit testing works": let address = initTAddress("127.0.0.1:48952")
check 2 == 2
var peer1, peer2: DaggerPeer
var input, output: File
proc setupPeers =
peer1 = newDaggerPeer()
peer2 = newDaggerPeer()
peer1.listen(address)
peer2.dial(address)
proc setupFiles =
input = open("tests/input.txt", fmReadWrite)
output = open("tests/output.txt", fmReadWrite)
input.write("foo")
input.setFilePos(0)
proc teardownPeers =
peer1.close()
peer2.close()
proc teardownFiles =
input.close()
output.close()
removeFile("tests/input.txt")
removeFile("tests/output.txt")
setup:
setupPeers()
setupFiles()
teardown:
teardownPeers()
teardownFiles()
test "file can be transferred from one peer to another":
let identifier = await peer1.upload(input)
await peer2.download(identifier, output)
input.setFilePos(0)
output.setFilePos(0)
check output.readAll() == input.readAll()