mirror of
https://github.com/MarginaliaSearch/MarginaliaSearch.git
synced 2025-02-24 05:18:58 +00:00
(warc) Refactor WarcSideloaderTest to not rely on specific test files on the computer
This commit is contained in:
parent
cc813a5624
commit
2d5d11645d
@ -5,33 +5,61 @@ import com.google.inject.Guice;
|
|||||||
import nu.marginalia.converting.ConverterModule;
|
import nu.marginalia.converting.ConverterModule;
|
||||||
import nu.marginalia.converting.processor.ConverterDomainTypes;
|
import nu.marginalia.converting.processor.ConverterDomainTypes;
|
||||||
import nu.marginalia.converting.sideload.SideloaderProcessing;
|
import nu.marginalia.converting.sideload.SideloaderProcessing;
|
||||||
|
import org.junit.jupiter.api.AfterEach;
|
||||||
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.mockito.Mockito;
|
import org.mockito.Mockito;
|
||||||
|
import org.netpreserve.jwarc.WarcWriter;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.net.URI;
|
||||||
|
import java.net.URISyntaxException;
|
||||||
|
import java.nio.file.Files;
|
||||||
import java.nio.file.Path;
|
import java.nio.file.Path;
|
||||||
|
|
||||||
import static org.mockito.Mockito.when;
|
import static org.mockito.Mockito.when;
|
||||||
|
|
||||||
class WarcSideloaderTest {
|
class WarcSideloaderTest extends AbstractModule {
|
||||||
@Test
|
SideloaderProcessing processing;
|
||||||
public void test() throws IOException {
|
|
||||||
|
Path warcFile;
|
||||||
|
@BeforeEach
|
||||||
|
public void setUp() throws IOException {
|
||||||
|
processing = Guice.createInjector(new ConverterModule(), this)
|
||||||
|
.getInstance(SideloaderProcessing.class);
|
||||||
|
warcFile = Files.createTempFile(getClass().getSimpleName(), ".warc.gz");
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterEach
|
||||||
|
public void tearDown() throws IOException {
|
||||||
|
Files.deleteIfExists(warcFile);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void configure() {
|
||||||
var domainTypesMock = Mockito.mock(ConverterDomainTypes.class);
|
var domainTypesMock = Mockito.mock(ConverterDomainTypes.class);
|
||||||
when(domainTypesMock.isBlog(Mockito.any())).thenReturn(false);
|
when(domainTypesMock.isBlog(Mockito.any())).thenReturn(false);
|
||||||
|
|
||||||
var processing = Guice.createInjector(new ConverterModule(),
|
|
||||||
new AbstractModule() {
|
|
||||||
public void configure() {
|
|
||||||
bind(ConverterDomainTypes.class).toInstance(domainTypesMock);
|
bind(ConverterDomainTypes.class).toInstance(domainTypesMock);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
)
|
|
||||||
.getInstance(SideloaderProcessing.class);
|
|
||||||
|
|
||||||
var sideloader = new WarcSideloader(Path.of("/home/vlofgren/marginalia.warc.gz"), processing);
|
|
||||||
|
@Test
|
||||||
|
public void test() throws IOException {
|
||||||
|
try (var writer = new WarcWriter(Files.newOutputStream(warcFile))) {
|
||||||
|
writer.fetch(new URI("https://www.marginalia.nu/"));
|
||||||
|
writer.fetch(new URI("https://www.marginalia.nu/log/93_atags/"));
|
||||||
|
writer.fetch(new URI("https://www.marginalia.nu/links/"));
|
||||||
|
} catch (URISyntaxException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
try (var sideloader = new WarcSideloader(warcFile, processing)) {
|
||||||
|
|
||||||
var domain = sideloader.getDomain();
|
var domain = sideloader.getDomain();
|
||||||
System.out.println(domain);
|
System.out.println(domain);
|
||||||
sideloader.getDocumentsStream().forEachRemaining(System.out::println);
|
sideloader.getDocumentsStream().forEachRemaining(System.out::println);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user