Skip to content

Commit

Permalink
Mise à jour Constellation
Browse files Browse the repository at this point in the history
  • Loading branch information
julienmalard committed Jun 27, 2024
1 parent e9b0f12 commit a0e48a6
Show file tree
Hide file tree
Showing 9 changed files with 33 additions and 27 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,10 +47,10 @@ On vous recommande la [documentation complète](https://docu.réseau-constellati
import Constellation

# D'abord, lancer le nœud local
Constellation.avecServeur() do port
Constellation.avecServeur() do port, codeSecret

#
Constellation.avecClient(port) do client
Constellation.avecClient(port, codeSecret) do client
# Écrire tout le reste de son code ici

# Par exemple :
Expand Down
6 changes: 3 additions & 3 deletions docu/src/guide/serveur.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Notez le numéro du port ; vous devrez le passer au client Julia.
Vous pouvez également lancer un serveur à partir d'un processus Julia :

```julia
(port, fFermerServeur) = Constellation.lancerServeur()
(port, codeSecret, fFermerServeur) = Constellation.lancerServeur()

# Lorsque vous en avez assez vu :
fFermerServeur()
Expand All @@ -32,8 +32,8 @@ Vous pouvez aussi lancer un nœud Constellation temporaire qui se fermera automa
```julia
import Constellation

Constellation.avecServeur() do port
Constellation.avecClient(port) do client
Constellation.avecServeur() do port, codeSecret
Constellation.avecClient(port, codeSecret) do client
# Écrire tout le reste de son code ici
end
end
Expand Down
11 changes: 6 additions & 5 deletions src/client.jl
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,16 @@ include("utils/événements.jl")

mutable struct Client
port::Int
codeSecret::String
émetteur::Émetteur
ws::WebSockets.WebSocket{Sockets.TCPSocket}
Client(;port, émetteur) = new(port, émetteur)
Client(;port, codeSecret, émetteur) = new(port, codeSecret, émetteur)
end

function avecClient(f::Function, port::Int)
client = Client(;port=port, émetteur=Émetteur())
function avecClient(f::Function, port::Int, codeSecret::String)
client = Client(;port=port, codeSecret=codeSecret, émetteur=Émetteur())

WebSockets.open(string("ws://localhost:", port)) do ws_client
WebSockets.open(string("ws://localhost:", port, "?code=", codeSecret)) do ws_client
client.ws = ws_client
@async begin
while true
Expand Down Expand Up @@ -135,7 +136,7 @@ function suivre(

merge(
Dict([("fOublier", fOublier)]),
retour == nothing ? Dict([]) : Dict(fn=>générerFRéponse(fn) for fn in retour if fn != "fOublier")
retour === nothing ? Dict([]) : Dict(fn=>générerFRéponse(fn) for fn in retour if fn != "fOublier")
)
end

Expand Down
11 changes: 7 additions & 4 deletions src/serveur.jl
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,8 @@ function lancerServeur(;port::Int=0, exe::AbstractString="constl", dossier::Abst
message = JSON.parse(split(sortie, "MESSAGE MACHINE :")[2])
if (message["type"] == "NŒUD PRÊT")
portFinal = message["port"]
return (portFinal, fFermer)
codeSecret = message["codeSecret"]
return (portFinal, codeSecret, fFermer)
end
end
end
Expand All @@ -44,9 +45,11 @@ end

function avecServeur(
f::Function,
;port::Int=0, exe::AbstractString="constl", dossier::AbstractString=""
;port::Int=0,
exe::AbstractString="constl",
dossier::AbstractString=""
)
(port, fermerServeur) = lancerServeur(port=port, exe=exe, dossier=dossier)
f((port))
(port, codeSecret, fermerServeur) = lancerServeur(port=port, exe=exe, dossier=dossier)
f(port, codeSecret)
fermerServeur()
end
4 changes: 2 additions & 2 deletions test/client/testActionSuivi.jl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
include("../utils.jl")

avecServeurTest() do (port)
Constellation.avecClient(port) do client
avecServeurTest() do port, codeSecret
Constellation.avecClient(port, codeSecret) do client

# Action sans arguments
idCompte = Constellation.action(client, "obtIdCompte")
Expand Down
8 changes: 4 additions & 4 deletions test/client/testFonctionsSpéciales.jl
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import DataFrames

include("../utils.jl")

avecServeurTest() do (port)
Constellation.avecClient(port) do client
avecServeurTest() do port, codeSecret
Constellation.avecClient(port, codeSecret) do client
idBd = Constellation.action(client, "bds.créerBd", Dict([("licence", "ODbl-1_0")]))
idTableau = Constellation.action(client, "bds.ajouterTableauBd", Dict([("idBd", idBd)]))

Expand Down Expand Up @@ -91,8 +91,8 @@ avecServeurTest() do (port)
end
end

avecServeurTest() do (port)
Constellation.avecClient(port) do client
avecServeurTest() do port, codeSecret
Constellation.avecClient(port, codeSecret) do client
idCompte = Constellation.action(client, "obtIdCompte")

idNuée = Constellation.action(client, "nuées.créerNuée")
Expand Down
4 changes: 2 additions & 2 deletions test/client/testRecherche.jl
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
include("../utils.jl")

avecServeurTest() do (port)
Constellation.avecClient(port) do client
avecServeurTest() do port, codeSecret
Constellation.avecClient(port, codeSecret) do client

# Créer 5 variables pour rechercher
variables = [Constellation.action(client, "variables.créerVariable", Dict([("catégorie", "numérique")])) for _ in 1:4]
Expand Down
6 changes: 4 additions & 2 deletions test/testServeur.jl
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,17 @@ version = Constellation.obtVersionServeur()

# Vérifier lancement du serveur sur port spécifié
Base.Filesystem.mktempdir() do dossier
Constellation.avecServeur(port=5002, dossier=dossier) do port
Constellation.avecServeur(port=5002, dossier=dossier) do port, codeSecret
@test port == 5002
@test isa(codeSecret, String)
end
end

# Vérifier lancement du serveur sur port libre et dossier spécifique
Base.Filesystem.mktempdir() do dossier
Constellation.avecServeur(dossier=dossier) do port
Constellation.avecServeur(dossier=dossier) do port, codeSecret
@test isa(port, Int)
@test isa(codeSecret, String)
attendreDossierExiste(dossier)
end
end
6 changes: 3 additions & 3 deletions test/utils.jl
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,13 @@ function versionValide(version::AbstractString)
end

function estNumérique(x)
return tryparse(Float64, x) != nothing
return tryparse(Float64, x) !== nothing
end

function avecServeurTest(f::Function)
Base.Filesystem.mktempdir() do dossier
Constellation.avecServeur(dossier=dossier) do port
f(port)
Constellation.avecServeur(dossier=dossier) do port, codeSecret
f(port, codeSecret)
end
end
end
Expand Down

0 comments on commit a0e48a6

Please sign in to comment.